node-mongodb

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 之前给腾讯云重新装了系统,按照网上的教程搭建node+mongodb环境时,遇到了一些问题,在此整理一份完整的配置...
    御坂12315阅读 3,674评论 0 4
  • 前言 很久之前学习gulp的时候,一直对browser-sync的多端自动刷新念念不忘。如今,gulp逐渐老去,w...
    dovebottle阅读 4,457评论 0 1
  • 在腾讯云上买了一个服务器(阿里云更贵,亚马逊云免费12个月但是国内访问极其慢),想把自己的网站跑在服务器上,需要配...
    waka阅读 3,641评论 0 0
  • 最近用Vue+Node+Mongodb写了一个日程管理备忘的一个WebAPP,写这篇文章的目的是为了记录一下开发过...
    年少有van阅读 4,963评论 0 2
  • 希望至今日以后,自己的写作爱好能坚持下去,成为生命中不可或缺的一部分。在文字的世界里,自己做自己的国王。自在如风,...
    清风亮阅读 1,823评论 0 0

友情链接更多精彩内容