首页  ·  知识 ·  前端
nodejs操作数据库mongodb数据库
网友    综合  编辑:dezai   图片来源:网络
nodejs操作数据库mongodb数据库

第一种:
var Db = require("mongodb").Db
, MongoClient = require("mongodb").MongoClient
, Server = require("mongodb").Server
, ReplSetServers = require("mongodb").ReplSetServers
, ObjectID = require("mongodb").ObjectID
, Binary = require("mongodb").Binary
, GridStore = require("mongodb").GridStore
, Code = require("mongodb").Code
, BSON = require("mongodb").pure().BSON
, assert = require("assert");
//var mongoclient = new MongoClient(new Server("localhost", 27017, { native_parser: true }));
var mongoclient = new MongoClient(new Server("localhost", 27017), { native_parser: true });
mongoclient.open(function (err, mongoclient) {
    var db = mongoclient.db("lks")
    , coll = db.collection("users");
    coll.insert({ 'username': 'andy', 'age': 24 }, function (err, result) {
          //插入操作,第一个参数是要插入的对象,
        //第二个参数是个回调函数(包含两个参数err是表示错误信息,
        //result表示插入之后返回的结果,此时返回的结果为插入的对象)
        assert.equal(null, err);
        //assert.equal(1, result);
        console.log("insert data success!");
        coll.update({ 'username': 'andy' }, { username: 'jack', age: 28 }, { upsert: true }, function (err, result) {
            //更新操作,第一个参数为条件(就是以此为条件进行更新)
            //第二个参数是更新后的对象
            //第三个参数是回调函数(含有两个参数,err表示错误信息,result表示更新返回的结果,如果成功,此时返回1)
           
            assert.equal(null, err); //这个就是判断更新的结果是否正确
            assert.equal(1, result);
            console.log("update data success!");
            mongoclient.close(function (err, result) {
                if (err) {
                    console.log("close the connection occur an err:" + err);
                }
                else {
                    console.log(result);
                }
            });

        });
    });
});
第二种:
var MongoClient = require("mongodb").MongoClient
, assert = require("assert");
MongoClient.connect("mongodb://localhost:27017/lks", { native_parser: true }, function (err, db) {
  
    //连接数据库:第一个参数是连接数据库字符串和(C#中的连接字符串是一样的
    //mongodb://[username:password@]hostname[:port][/[database][?options]]//MongoDB连接串的格式)
    //第二个参数可选的配置信息,
   // 第三个是回调函数(第一个参数是err如果连接出错,就会包含错误信息,否则为null,
   // 第二个参数是db就是连接成功就返回连接字符串中的指定的数据的实例,在接下的代码中就可以对其进行操作
    )
   
    assert.equal(null, err);
    console.log("connect to server success!");
    var coll = db.collection("users");
    coll.insert({ username: 'andy' }, function (err, result) {
        assert.equal(null, err);
        assert.ok(db != null);
        console.log("insert data success!");
        coll.update({ username: 'andy' }, { username: 'jack', age: 30 }, function (err, result) {
            assert.equal(null, err);
            assert.equal(1, result);
            console.log("update data success!");
            db.close(function (err) {
                if (err) {
                    console.log("close connection occur an error:" + err);
                }
                else {
                    console.log("close connection success!");
                }
            });
        });
    });
});

第三种方式
var Db = require("mongodb").Db
, MongoClient = require("mongodb").MongoClient
, Server = require("mongodb").Server
, assert = require("assert");
var db = new Db("lks", new Server("127.0.0.1", 27017, { auto_reconnect: false, poolSize: 1 }), { w: 0, native_parser: true });
db.open(function (err, db) {
    assert.equal(err, null);
    assert.ok(db != null);
    console.log("connect to db success!");
    var coll1 = db.collection("users");
    coll1.insert({ username: 'lucy' }, { w: 1 }, function (err, result) {
        assert.equal(err, null);
        console.log("insert lks'users data success!");
        console.log("insert data:" + result);
        var secondDb = db.db("microblog")
        , coll2 = secondDb.collection("users");
        coll2.insert({ username: 'andy' }, { w: 1 }, function (err, result) {
            assert.equal(err, null);
            console.log("insert into db microblog'users data success!");
            console.log("insert data:" + result);
            coll1.count(function (err, result) {
                console.log("colls count:" + result);
                coll2.count(function (err, result) {
                    console.log("colls count:" + result);
                    db.close(function (err, result) {
                        if (err) {
                            console.log("close db connection error:" + err);
                        } else {
                            console.log("close db connection success!");
                        }
                    });
                });
            });
          
        });
    });
});

本文作者:网友 来源:网络
CIO之家 www.ciozj.com 微信公众号:imciow
   
免责声明:本站转载此文章旨在分享信息,不代表对其内容的完全认同。文章来源已尽可能注明,若涉及版权问题,请及时与我们联系,我们将积极配合处理。同时,我们无法对文章内容的真实性、准确性及完整性进行完全保证,对于因文章内容而产生的任何后果,本账号不承担法律责任。转载仅出于传播目的,读者应自行对内容进行核实与判断。请谨慎参考文章信息,一切责任由读者自行承担。
延伸阅读