mongodb数据库的使用
最近在学习node,所以听说node和mongodb更配哦。。所以我就来学习mongodb了
一、mongodb的开启和关闭
1. 查找mongod是否可用
which mongod
2. 启动mongodb
指定path 和log日志
mongod --dbpath /data2/db --port=27017 --fork /data2/db/log/mongod.log
3. 关闭数据库
mongod --shutdown
二、mongodb的操作
1. 连接服务器
mongod 115.29.137.34:27017
2. 使用数据库
(不存在的数据库也可以使用,插入数据之后会自动保存)
use mydb
3. 权限登陆
db.auth('username','password')
4. 展示数据库列表
show dbs
5. 插入数据
(类似于mysql的表)
db.users.insert({'name':'xiaomo'})
db.users.insert({'name':'xiaoming','age':25})
db.users.insert({'name':'xiaoming','age':24,'sex':'女'})
6. 查询集合
(前提是use了一个数据库)
有一个System.indexes 是索引
show collections
7. 不带条件查询
db.users.find()
8. 带条件查询
(参数是一个对象)
db.users.find({'name':'xiaomo'})
9. 更新数据
(有三个参数,1:查询条件,2:更新的内容 3:更新的配置)
db.users.update({'name':'xiaomo',{$set:{'name:'xm}}) 修改满足条件的第一条数据
db.users.update({'name':'xiaomo',{$set:{'name:'xm}},{multi:true}) 修改所有满足条件的数据
10. 保存数据
(只有一个参数,必须要传id,后面是要修改的数据)
db.users.save({'id':'objectId(574710a97a3afd63cde56a49)','age':30})
11. 删除数据
(1:条件 2 是否删除所有符合条件的)
db.users.remove({'name':'xiaomoing'},true)
12. 删除集合
db.users.drop()
三、使用mongoose操作数据库
1. 模块的介绍
连接mongdodb的驱动
2. 配置和链接
npm install --save mongoose
var mongoose = require('mongoose'); var uri = 'mongodb://xiaomo:xiaomo@115.29.137.34:27017/admin'; mongoose.connect(uri);
3. Model 和Shema
// model.jsvar Schema = mongoose.Schema, ObjectId = Schema.ObjectId;var BlogPost = new Schema({ author : ObjectId, title : String, body : String, date : Date});//Modelmongoose.model('blog',Schema);var Comment = new Schema({ name: { type: String, default: 'hahaha' }, age: { type: Number, min: 18, index: true }, bio: { type: String, match: /[a-z]/ }, date: { type: Date, default: Date.now }});// a setterComment.path('name').set(function (v) { return capitalize(v);});// middlewareComment.pre('save', function (next) { notify(this.get('email')); next();});
4. 创建文档
//insert.js var mongoose = require('mongoose'); require('./model.js'); //执行 var Blog = mongoose.model('blog'); var blog = new Blog({ name:'xiaomo', age:25, bio:'don't know', date:new Date }); book.save(function(err){ console.log('save status:'+err); });
5. 删除文档
var mongoose = require('mongoose'); require('./model.js'); var Blog = mongoose.model('blog'); Blog.findOne({'name':'xiaomo'},function(err,doc){ if(err){ console.log(err) return; } if(doc){ doc.reomove(); } })
6. 简单查询
var mongoose = require('mongoose'); require('./model.js'); var Blog = mongoose.model('blog'); Blog.find({},function(err,doc){ if(err){ console.log(err) return; } console.log('result',doc) })
第一个满足条件的结果
var mongoose = require('mongoose'); require('./model.js'); var Blog = mongoose.model('blog'); Blog.findOne({'name':'xiaomo'},function(err,doc){ if(err){ console.log(err) return; } console.log('result',doc) })
7. 条件语句
// condation.js var mongoose = require('mongoose'); require('./model.js'); var Blog = mongoose.model('blog'); //名字是xiaomo或者xiaoming 可以用$or和$and var condation = { $or $and:[ {'name':'xiaomo'}, {'name':'xiaoming'} ] } Blog.find(condation,function(err,doc){ if(err){ console.log(err) return; } console.log('result',doc) })
三、在项目中使用mongoose
1. 生成项目
koa koatest -e koatest
2. 安装依赖
cd koatest && npm install
3. 安装mongoose
npm install --save mongoose
4. 创建模型
// models/users.server.model.js var mongoose = require('mongoose'); var UserSchema = new mongoose.Schema({ uid:Number, username:String, createTime:Date, lastLogin:Date }) module.exports = mongoose.model('User',UserSchema);
5. 创建配置文件
// config/config.js module.exports={ mongodb:'mongodb://xiaomo:xiaomo@115.29.137.34:27017/admin' } //config/mongoose.js var mongoose = require('mongoose'); var config = require('./config.js'); module.exports=function(){ var db = mongoose.connect(config.mongodb); require('./../models/users.server.model.js'); return db; }
6. 操作mongdodb 代码
//routers/users.js var router = require('koa-router')(); var mongoose = require('mongoose'); var User = mongoose.model('User'); router.get('/', function *(next) { //add var user = new User({ uid: }) this.body = yield User.find({}); }); module.exports = router;
关键字:JavaScript, linux, CentOS, node.js
版权声明
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处。如若内容有涉嫌抄袭侵权/违法违规/事实不符,请点击 举报 进行投诉反馈!