2013-07-25 11 views

Trả lời

7

MongoClient thường được ưu tiên, vấn đề lớn duy nhất là vấn đề mới hơn (1.2+).

Chúng ta hãy trích dẫn the manual:

MongoClient hoặc làm thế nào để kết nối một cách mới và tốt hơn

Từ phiên bản driver 1.2 chúng tôi giới thiệu một Class kết nối mới có cùng tên trên tất cả chúng ta tài xế chính thức. Điều này là để đảm bảo rằng chúng tôi trình bày một mặt trận dễ nhận biết cho tất cả các API của chúng tôi. Điều này không có nghĩa là rằng ứng dụng hiện tại của bạn sẽ bị hỏng, nhưng thay vào đó chúng tôi khuyến khích bạn sử dụng api kết nối mới để đơn giản hóa việc phát triển ứng dụng của bạn.

Hơn nữa, chúng tôi đang tạo lớp kết nối mới MongoClient thừa nhận tất cả ghi vào MongoDB, trái ngược với lớp kết nối hiện có Db đã tắt xác nhận.

Hai thay đổi lớn nhất là do đó MongoClient thừa nhận tất cả ghi vào DB và khi cơ sở dữ liệu thực được chọn trong kết nối.

Với MongoClient:

var MongoClient = require('mongodb').MongoClient 
    , Server = require('mongodb').Server; 

var mongoClient = new MongoClient(new Server('localhost', 27017)); 
mongoClient.open(function(err, mongoClient) { 
    var db1 = mongoClient.db("mydb"); // The DB is set here 

    mongoClient.close(); 
}); 

vs với Db:

// db is selected in the next line, unlike with MongoClient and most drivers to other databases 
var db = new Db('test', new Server('locahost', 27017)); 
// Establish connection to db 
db.open(function(err, db) { 
    assert.equal(null, err); 

    db.on('close', test.done.bind(test)); 
    db.close(); 
});