美文网首页
2016.09.19 nodejs操作MongoDB数据库

2016.09.19 nodejs操作MongoDB数据库

作者: Success85 | 来源:发表于2016-09-21 12:32 被阅读28次

    第三方模块库

    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();

    相关文章

      网友评论

          本文标题:2016.09.19 nodejs操作MongoDB数据库

          本文链接:https://www.haomeiwen.com/subject/wilaettx.html