Từ phiên bản trình điều khiển 1. 2, chúng tôi đã giới thiệu một Lớp kết nối mới có cùng tên trên tất cả các trình điều khiển chính thức của chúng tôi. Đ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à ứng dụng hiện tại của bạn sẽ bị hỏng, mà đúng hơn là 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 quá trình phát triển ứng dụng của bạn Show
Hơn nữa, lớp kết nối mới MongoClient thừa nhận tất cả các ghi vào MongoDB, trái ngược với lớp kết nối hiện tại Db đã tắt xác nhận. Hãy tham quan các chức năng MongoClient MongoClient = function(server, options); MongoClient.prototype.open MongoClient.prototype.close MongoClient.prototype.db MongoClient.connect Phác thảo ở trên là giao diện MongoClient hoàn chỉnh. Các phương thức mở, đóng và db hoạt động rất giống với các phương thức hiện có trên lớp Db. Sự khác biệt chính là hàm tạo thiếu tên cơ sở dữ liệu từ Db. Hãy hiển thị một kết nối đơn giản bằng cách sử dụng mã mở như một ví dụ về một nghìn từ 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"); mongoClient.close(); }); Lưu ý rằng bạn định cấu hình MongoClient giống như bạn đã thực hiện đối tượng Db. Sự khác biệt chính là bạn truy cập các phiên bản db bằng cách sử dụng phương thức db trên đối tượng MongoClient thay vì sử dụng trực tiếp phiên bản Db như trước đây. MongoClient hỗ trợ các tùy chọn giống như phiên bản Db trước đó mà bạn đã tạo Vì vậy, với một thay đổi tối thiểu trong ứng dụng của chúng tôi, chúng tôi có thể áp dụng mã kết nối MongoClient mới. Nhưng có nhiều và một hướng bạn có thể xem xét trong tương lai. Đó là chuỗi kết nối mongodb Định dạng kết nối URLmongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]] Định dạng URL được thống nhất giữa các trình điều khiển chính thức từ 10gen với một số tùy chọn không được hỗ trợ trên một số trình điều khiển vì lý do tự nhiên. Những cái không được hỗ trợ bởi Node. trình điều khiển js bị loại bỏ vì mục đích đơn giản Các phần cơ bản của url
Cấu hình bộ bản sao
Cấu hình kết nối
Cấu hình nhóm kết nối
Viết cấu hình quan tâmThông tin chi tiết hơn về mối quan tâm viết có thể được tìm thấy tại http. //www. mongodb. org/display/DOCS/getLastError+Command
tùy chọn xác thực
đọc tùy chọn
MongoClient. liên kếtĐịnh dạng url có thể được sử dụng với MongoClient. liên kết. Nếu có thể, MongoClient sẽ chọn các giá trị mặc định tốt nhất có thể cho các tùy chọn nhưng chúng có thể bị ghi đè. Điều này bao gồm đặt auto_reconnect thành true và native_parser thành true nếu có. Dưới đây là một số ví dụ về cách kết nối với một máy chủ duy nhất, một bản sao và một hệ thống phân mảnh bằng MongoClient. liên kết Kết nối máy chủ duy nhấtvar MongoClient = require('mongodb').MongoClient; MongoClient.connect("mongodb://localhost:27017/integration_test", function(err, db) { test.equal(null, err); test.ok(db != null); db.collection("replicaset_mongo_client_collection").update({a:1}, {b:1}, {upsert:true}, function(err, result) { test.equal(null, err); test.equal(1, result); db.close(); test.done(); }); }); Theo mặc định, một bộ bản sao kết nối không sử dụng xác nhận và readPreference cho phụvar MongoClient = require('mongodb').MongoClient; MongoClient.connect("mongodb://localhost:30000,localhost:30001/integration_test_?w=0&readPreference=secondary", function(err, db) { test.equal(null, err); test.ok(db != null); db.collection("replicaset_mongo_client_collection").update({a:1}, {b:1}, {upsert:true}, function(err, result) { test.equal(null, err); test.equal(1, result); db.close(); test.done(); }); }); Theo mặc định, một kết nối được phân đoạn không sử dụng xác nhận và readPreference cho phụvar MongoClient = require('mongodb').MongoClient; MongoClient.connect("mongodb://localhost:50000,localhost:50001/integration_test_?w=0&readPreference=secondary", function(err, db) { test.equal(null, err); test.ok(db != null); db.collection("replicaset_mongo_client_collection").update({a:1}, {b:1}, {upsert:true}, function(err, result) { test.equal(null, err); test.equal(1, result); db.close(); test.done(); }); }); Lưu ý rằng khi kết nối với hệ thống phân mảnh, nó gần như giống với url để kết nối với bản sao. Điều này là do trình điều khiển tự xác định xem đó là một bản sao hay một bộ proxy Mongos mà nó đang kết nối với. Không cần chăm sóc đặc biệt để chỉ định nếu đó là cái này hay cái kia. Điều này trái ngược với việc phải sử dụng các phiên bản ReplSet hoặc Mongos khi sử dụng lệnh mở Tổng hợp kết nối MongoClientNhóm kết nối là bộ nhớ cache của các kết nối cơ sở dữ liệu do trình điều khiển duy trì để có thể sử dụng lại các kết nối khi cần có kết nối mới với cơ sở dữ liệu. Để giảm số lượng nhóm kết nối được tạo bởi ứng dụng của bạn, chúng tôi khuyên bạn nên gọi MongoClient. kết nối một lần và sử dụng lại biến cơ sở dữ liệu được gọi lại var express = require('express'); var mongodb = require('mongodb'); var app = express(); var MongoClient = require('mongodb').MongoClient; var db; // Initialize connection once MongoClient.connect("mongodb://localhost:27017/integration_test", function(err, database) { if(err) throw err; db = database; // Start the application after the database connection is ready app.listen(3000); console.log("Listening on port 3000"); }); // Reuse database object in request handlers app.get("/", function(req, res) { db.collection("replicaset_mongo_client_collection").find({}, function(err, docs) { docs.each(function(err, doc) { if(doc) { console.log(doc); } else { res.end(); } }); }); }); MongoClient. tùy chọn kết nốiChức năng kết nối cũng có một hàm băm các tùy chọn được chia thành db/server/replset/mongos cho phép bạn điều chỉnh các tùy chọn không được định dạng chuỗi url hợp nhất hỗ trợ trực tiếp. Để sử dụng các tùy chọn này, bạn chuyển qua một hàm băm như thế này |