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

Làm cách nào để biết có nhiều kết quả hơn từ một truy vấn trong MongoDB không?

MongoDB có con trỏ có thể điều chỉnh , cho phép bạn sử dụng lại con trỏ sau khi tất cả dữ liệu đã được trả về. Nó sẽ trông giống như thế này:

n = 10
docs = db.documents.find({"foo": "bar"}).limit(n)
more = docs.hasNext()

Lưu ý rằng chỉ có 10 tài liệu được truy xuất, nhưng con trỏ có thể được kiểm tra để xác định xem có nhiều đối tượng hơn không. Vấn đề duy nhất là con trỏ có thể điều chỉnh chỉ có thể được sử dụng trên các bộ sưu tập có giới hạn.

Ở trên cũng có thể được sử dụng với con trỏ thông thường, nhưng bạn phải truy vấn cho n + 1 các tài liệu. Về cơ bản, đây là giải pháp tương tự như bạn đang sử dụng bây giờ. Bạn phải sử dụng size() tuy nhiên, vì điều đó có tính đến các công cụ sửa đổi bỏ qua và giới hạn.

n = 10
docs = db.documents.find({"foo": "bar"}).limit(n + 1)
more = db.size() > n

Tôi không quen thuộc với PyMongo, vì vậy tôi không biết chắc chắn về điều này, nhưng có khả năng giải pháp này gửi n + 1 tài liệu đầy đủ cho đơn đăng ký của bạn, thay vì n bắt buộc , dẫn đến chi phí băng thông nhỏ. Nếu đúng như vậy, bạn có thể muốn tạo một hàm phía máy chủ thực hiện chức năng tương tự, nhưng chỉ trả về một đối tượng chứa n tài liệu trong một mảng và cờ cho biết nếu một n + 1 tài liệu có sẵn.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. tiếp tục trong cursor.forEach ()

  2. Chèn vào MongoDB qua Node.js

  3. Làm thế nào để kết nối chính xác với cụm Atlas M0 (Bậc miễn phí) thông qua trình điều khiển Java?

  4. Làm thế nào để thực hiện cập nhật hàng loạt tài liệu trong MongoDB với Java?

  5. Tìm tất cả các tài liệu có chung (giá trị) tối đa được tìm thấy trong bước tổng hợp