首页 / 数据库 / MySQL / MongoDB学习笔记(2)—Node.js与MongoDB的基本连接示例
前提
已经安装了node.js和MongoDB,本文使用的node.js是v0.12.0,MongoDB是3.0.0。MongoDB学习笔记(1)—在Windows系统中安装MongoDB http://www.linuxidc.com/Linux/2015-03/114582.htm如何在CentOS 7安装Node.js http://www.linuxidc.com/Linux/2015-02/113554.htmUbuntu 14.04下搭建Node.js开发环境 http://www.linuxidc.com/Linux/2014-12/110983.htmUbunru 12.04 下Node.js开发环境的安装配置 http://www.linuxidc.com/Linux/2014-05/101418.htmNode.Js入门[PDF+相关代码] http://www.linuxidc.com/Linux/2013-06/85462.htmNode.js开发指南 高清PDF中文版 +源码 http://www.linuxidc.com/Linux/2014-09/106494.htm初始化数据
启动MongoDB服务,在test数据库中插入一条实例数据:db.user.install({name:"scaleworld",age:27});在Node.js中引入MongoDB模块
npm install mongodb编写mongodbDemo.js
var mongodb = require("mongodb");var server = new mongodb.Server("localhost",27017,{safe:true});new mongodb.Db("test",server,{}).open(function(error,client){if(error) throw error;var collection = new mongodb.Collection(client,"user");collection.find(function(error,cursor){cursor.each(function(error,doc){if(doc){console.log("name:"+doc.name+" age:"+doc.age);}});});});运行
{ [Error: Cannot find module "../build/Release/bson"] code: "MODULE_NOT_FOUND" }js-bson: Failed to load c++ bson extension, using pure JS version================================================================================Please ensure that you set the default write concern for the database by setting== one of the options ==== w: (value of > -1 or the string "majority"), where < 1 means ==no write acknowlegement == journal: true/false, wait for flush to journal before acknowlegement == fsync: true/false, wait for flush to file system before acknowlegement ====For backward compatibility safe is still supported and== allows values of [true | false | {j:true} | {w:n, wtimeout:n} | {fsync:true}]== the default value is false which means the driver receives does not== return the information of the success/error of the insert/update/remove==== ex: new Db(new Server("localhost", 27017), {safe:false}) ==== http://www.mongodb.org/display/DOCS/getLastError+Command ====The default of no acknowlegement will change in the very near future====This message will disappear when the default safe is set on the driver Db =========================================================================================name:scaleworld age:27 虽然最后打印出了我们之前插入的数据,但是前面一大串的错误还是人看着不舒服,我们要消灭它们。Error: Cannot find module "../build/Release/bson"的解决办法
{ [Error: Cannot find module "../build/Release/bson"] code: "MODULE_NOT_FOUND" }js-bson: Failed to load c++ bson extension, using pure JS version头两行说的是没有发现bson模块。好办我们立马安装:npm install bson然后将D:
odejsdemo
ode_modulesmongodb
ode_modulessonextindex.js中的bson = require("../build/Release/bson")改成bson = require("bson") ,重新运行。不过这样只是解决头两行的问题,还有用=包围起来的问题。“Please ensure that you set the default write concern for the database”的解决办法
从最后一句话“This message will disappear when the default safe is set on the driver Db”我们就可以看出该问题的解决办法,只要将数据库连接设置为安全即可。具体代码修改如下:new mongodb.Db("test",server,{})修改为new mongodb.Db("test",server,{safe:true})Ubuntu 13.04下安装MongoDB2.4.3 http://www.linuxidc.com/Linux/2013-05/84227.htmMongoDB入门必读(概念与实战并重) http://www.linuxidc.com/Linux/2013-07/87105.htmUbunu 14.04下MongoDB的安装指南 http://www.linuxidc.com/Linux/2014-08/105364.htm《MongoDB 权威指南》(MongoDB: The Definitive Guide)英文文字版[PDF] http://www.linuxidc.com/Linux/2012-07/66735.htmNagios监控MongoDB分片集群服务实战 http://www.linuxidc.com/Linux/2014-10/107826.htm基于CentOS 6.5操作系统搭建MongoDB服务 http://www.linuxidc.com/Linux/2014-11/108900.htmMongoDB 的详细介绍:请点这里
MongoDB 的下载地址:请点这里本文永久更新链接地址