2016.09.19 nodejs操作MongoDB数据库
2016-09-21 本文已影响28人
Success85
第三方模块库
使用第三方模块mongoose
- 安装
# npm install mongoose
- 实例
var mongoose = require('mongoose');
//创建一个链接,并选择数据库
var db = mongoose.createConnection('mongodb://localhost:27017/test');
//设置数据类型
var monSchema = new mongoose.Schema({
name:{type:String,default:'liuyanming'},
age:{type:Number,min:1,index:true},
sex:{type:String}
});
//选择集合
var monmodel = db.model('users',monSchema);
(1)插入数据
var content = {name:'刘先生',age:10,sex:'男'};
var monInsert = new monmodel(content);
monInsert.save(function(err){
if(err){
console.log(err);
}else{
console.log('save data is successful');
}
db.close();
});
(2) 查询数据
var condition = {name:'刘先生'};
var field = {name:1,age:1,sex:1};
monmodel.find(condition,field,function(err,result){
if(err){
console.log(err);
}else{
console.log(result);
}
db.close();
});
(3) 更新数据
var condition = { _id: '57dea86e0168d037f3445f69' };
var setData = { name: 'aaa', sex: 'male', age: '500' };
monmodel.update(condition,{$set:setData},function(err,result){
if(err){
console.log(err);
}else{
console.log(result);
}
db.close();
});
(4) 删除数据
var condition = { _id: '57dea86e0168d037f3445f69' };//条件
monmodel.remove(condition,function(err,result){
if(err){
console.log(err);
}else{
console.log(result);
}
db.close();
});
使用第三方模块mongodb
- 安装
# npm install mongodb
- 实例:
var MongoClient = require('mongodb').MongoClient;
var url = 'mongodb://127.0.0.1:27017/test';
MongoClient.connect(url,function(err,db){
if(err){
console.log(err);
}else{
console.log('success');
db.close();
}
});
其他用到的东东
-
url 模块
var urlapi = require('url'); var url = urlapi.parse(req.url); //获取当前url的信息 var urlPath = url.pathname;
-
querystring 模块
var querystring = require('querystring'); var query = querystring.parse(url.query);//结合url 获取参数 var data = querystring.parse(formData);
-
获取post数据
var formData = ''; req.on('data',function(data){ formData+=data; });//接收post数据的过程 req.on('end',function(){ var data = querystring.parse(formData);//获取到的数据需要处理一下 //数据接收完毕,事务处理 });
遇到的问题:
-
修改删除的时候显示OK:1,但是并没有删除或者修改。用到
mongoose.Types.ObjectId(str);
解决方案如下:var id = mongoose.Types.ObjectId(query.id); //转换一下获取的ID var condition = {_id:id};
-
错误信息就不贴了,解决就是每次执行只能有一个res.end();