var MongoClient = require("mongodb").MongoClient;
var client = new MongoClient();
client.open()
client.close()
client.db()
这几个MongoClient的实例方法,构造方法还涉及到Server、ReplSet、Mongos等,比较繁琐。作者已经不推荐使用了:
deprecate direct Db/Server/ReplSet/Mongos
所以目前官方推荐的做法,是使用Connect URI + MongoClient.connect()方法
示例代码:
var mongoClient = require('mongodb').MongoClient;
var url = "mongodb://localhost:2222,localhost:3333,localhost:4444/mydb?maxPoolSize=10&w=1&journal=true";
// Open the connection to the server
mongoClient.connect(url, function (err, db) {
db.collection("test", {}, function (err, collection) {
collection.count(function (err, count) {
console.log("there are " + count + " documents in the collection");
db.close();
});
});
});
使用的是connect url,然后用MongoClient.connect(url, option, callback)函数来连接。上面的例子,在url中指定了dbname,那么会直接创建到目标db的连接。如果省略dbname,则是创建到admin db的连接,而不是缺省的test db,这和shell的行为不一样
实际上第二个参数option经常是被省略的,option的作用是,某些参数如果在url中没有提供,那么可以在option中指定,或者在option中覆盖url中的配置
回调函数第一个参数是error,第二个参数类型不是MongoClient,而是Db,这是和new MongoClient().open()函数的主要区别
这种方式应该是目前的最佳实践,关键是如何配置连接url,在上面那个how to connect in a new and better way里描述得非常清楚了,需要时可以查看