2016.09.19 nodejs操作MongoDB数据库

2016-09-21  本文已影响28人  Success85

第三方模块库

www.npmjs.com

使用第三方模块mongoose

  1. 安装
# npm install mongoose
  1. 实例
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

  1. 安装
# npm install mongodb
  1. 实例:
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();
    }
});

其他用到的东东

  1. url 模块

     var urlapi = require('url');
     var url = urlapi.parse(req.url); //获取当前url的信息
     var urlPath = url.pathname;
    
  2. querystring 模块

     var querystring = require('querystring');
     var query = querystring.parse(url.query);//结合url 获取参数
     var data = querystring.parse(formData);
    
  3. 获取post数据

     var formData = '';
     req.on('data',function(data){
         formData+=data;
     });//接收post数据的过程
     req.on('end',function(){
         var data = querystring.parse(formData);//获取到的数据需要处理一下
         //数据接收完毕,事务处理
     });
    

遇到的问题:

  1. 修改删除的时候显示OK:1,但是并没有删除或者修改。用到mongoose.Types.ObjectId(str);
    解决方案如下:

     var id = mongoose.Types.ObjectId(query.id); //转换一下获取的ID
     var condition = {_id:id};
    
  2. 错误信息就不贴了,解决就是每次执行只能有一个res.end();

上一篇下一篇

猜你喜欢

热点阅读