node-mongodb

753 阅读2分钟
IDE Visual Studio Code
node v8.9.0
npm v5.5.1
mongodb v2.2.33

注:要查看mongodb的版本,不然使用db.collection()这个方法时会从mongodb的库中报这个错:db.collection not a function

解决:把package.json里面的mongodb改成 "mongodb": "^2.2.33" , 然后npm install就OK了 其实就是安装个旧的版本,当前从npm直接install的mongodb版本为3.0.0+,3.0版本API有较大的改变,还没去研究collection是换了名字还是废弃了。

想了解的同学可以点这个:https://www.npmjs.com/package/mongodb

项目结构

  • code
    • db
  • node_modules
    • npm 模块(mongodb是一定要安装的)
  • router
    • interface(准备后面加个express写接口的)
  • package.json
  • server.js
  • README.md

下面不多说了,直接上代码 主要是db.js,在VS code上可以直接运行调试,不启动server都OK的,还有记得打开mongodb,我上篇文章有介绍 https://www.jianshu.com/p/b15d293930bc

//引入mongodb模块,获得客户端对象
var MongoClient = require('mongodb').MongoClient;
//连接字符串
var DB_CONN_STR = 'mongodb://localhost:27017/nodedb';   

//使用客户端连接数据,并指定完成时的回调方法
// 增
MongoClient.connect(DB_CONN_STR, function(err, db) {
    console.log("连接成功!");
    //获得指定的集合 
    var collection = db.collection('users');
    //插入数据
    var data = [{_id:7,"name":'rose',"age":21},{_id:8,"name":'mark',"age":22}];
    collection.insert(data, function(err, result) {
        //如果存在错误
        if(err) {
            console.log('Error:'+ err);
            return;
        }
        //显示结果
        console.log(result);
        //关闭数据库
        db.close();
    });
});

// 改
MongoClient.connect(DB_CONN_STR, function(err, db) {
    console.log("连接成功!");
    //获得指定的集合 
    var collection = db.collection('users');
    //要修改数据的条件,>=18岁的用户
    var  where={age:{"$gte":18}};
    //要修改的结果
    var set={$set:{age:95}};
    collection.updateMany(where,set, function(err, result) { 
        //如果存在错误
        if(err) {
            console.log('Error:'+ err);
            return;
        }
        //显示结果
        console.log(result);
        //关闭数据库
        db.close();
    });
});

// 查
MongoClient.connect(DB_CONN_STR, function(err, db) {
    console.log("连接成功!");
    //获得指定的集合 
    var collection = db.collection('users');
    //要查询数据的条件,<=18岁的用户
    var  where={age:{"$lte":18}};
    //设置要显示的字段
    var set={name:1,age:1};
    collection.find(where,set).toArray(function(err, result) { 
        //如果存在错误
        if(err) {
            console.log('Error:'+ err);
            return;
        }
        //显示结果
        console.log(result);
        //关闭数据库
        db.close();
    });
});

// 删
MongoClient.connect(DB_CONN_STR, function(err, db) {
    console.log("连接成功!");
    //获得指定的集合 
    var collection = db.collection('users');
    //要删除数据的条件,_id=7的用户删除
    var  where={_id:7};
    collection.remove(where,function(err, result) { 
        //如果存在错误
        if(err) {
            console.log('Error:'+ err);
            return;
        }
        //显示结果
        console.log(result);
        //关闭数据库
        db.close();
    });
});