MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

Làm cách nào để bạn đếm số lượng tài liệu trong bộ sưu tập MongoDB trong Node?

Để nhận số lượng tài liệu trong một bộ sưu tập, hãy sử dụng db.collection.find({}).count() .

Tuy nhiên, những gì bạn đang cố gắng làm sẽ không hiệu quả. Khi bạn có nhiều quyền truy cập song song vào cơ sở dữ liệu, thì có thể nhiều luồng thực hiện điều này cùng một lúc, nhận cùng một số lượng và do đó sẽ chèn một tài liệu có cùng một id. Theo Định lý CAP , một cơ sở dữ liệu phân tán như MongoDB không thể cung cấp loại nhất quán này.

Thay vào đó, điều bạn nên làm là dựa vào MongoDB ObjectId là số nhận dạng duy nhất cho tài liệu. MongoDB tự động tạo các giá trị này cho mỗi tài liệu khi bạn không cung cấp giá trị riêng cho _id . ObjectId là duy nhất trên toàn cầu (đủ duy nhất cho bất kỳ mục đích thực tế nào), vì vậy bạn sẽ không nhận được bất kỳ va chạm nào. Chúng cũng bắt đầu bằng dấu thời gian, vì vậy khi bạn đặt hàng theo _id bạn nhận được một thứ tự thời gian gần như đã nêu (như đã nêu trước đây, một nghiêm ngặt thứ tự thời gian không thể được cung cấp bởi một hệ thống phân tán).

Theo nguyên tắc chung, bất cứ khi nào bạn sử dụng AUTO_INCREMENT trong SQL, bạn có thể sẽ sử dụng ObjectId trong MongodDB.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. đối sánh mảng mongodb

  2. Xác thực MongoDB không được bật trên Máy chủ Linux

  3. Nhận DateTime từ bộ sưu tập mongo bằng trình điều khiển c #

  4. Cách tạo API RESTful tốt nhất trong Node.js

  5. Tìm tất cả các tài liệu trùng lặp trong bộ sưu tập MongoDB theo trường khóa