zoukankan      html  css  js  c++  java
  • MongoDB学习(2)—Node.js与MongoDB的基本连接示例

    前提

    已经安装了node.js和MongoDB,本文使用的node.js是v0.12.0,MongoDB是3.0.0。

    初始化数据

    启动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})

  • 相关阅读:
    2012 金华 现场赛
    依据错误原理解决Hibernate执行出现No CurrentSessionContext configured!错误
    【python】a[::-1]翻转
    【算法】各种哈希算法
    【wireshark】打开后显示There are no interfaces on which a capture can be done
    【python】在python中调用mysql
    【mysql】执行mysql脚本
    【mysql】用navicat连接虚拟机mysql出现错误代码(10038)
    【python-mysql】在ubuntu下安装python-mysql环境
    【python】lamda表达式,map
  • 原文地址:https://www.cnblogs.com/imfanqi/p/4314742.html
Copyright © 2011-2022 走看看