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

MongoDB:không thể sử dụng con trỏ để lặp qua tất cả dữ liệu

Nói chung, có. Nếu bạn có một trường đơn điệu, lý tưởng là một trường được lập chỉ mục, bạn có thể chỉ cần đi dọc theo trường đó. Ví dụ:nếu bạn đang sử dụng các trường thuộc loại ObjectId làm khóa chính hoặc nếu bạn có CreatedDate hoặc một cái gì đó, bạn có thể chỉ cần sử dụng $lt truy vấn, lấy một số phần tử cố định, sau đó truy vấn lại bằng cách sử dụng $lt của _id nhỏ nhất hoặc CreatedDate bạn đã gặp trong lô trước.

Hãy cẩn thận về hành vi đơn điệu nghiêm ngặt so với hành vi đơn điệu không nghiêm ngặt:Bạn có thể phải sử dụng $lte nếu các phím không nghiêm ngặt, thì hãy ngăn chặn việc thực hiện hai lần trên bản lừa đảo. Kể từ _id trường là duy nhất, ObjectIds luôn luôn đơn điệu nghiêm ngặt.

Nếu bạn không có chìa khóa như vậy, mọi thứ sẽ phức tạp hơn một chút. Bạn vẫn có thể lặp lại 'dọc theo chỉ mục' (bất kỳ chỉ mục nào, có thể là tên, mã băm, UUID, Hướng dẫn, v.v.). Điều đó cũng hoạt động tốt, nhưng rất khó để thực hiện chụp nhanh, bởi vì bạn không bao giờ biết liệu kết quả bạn vừa tìm thấy có được chèn vào trước khi bạn bắt đầu duyệt hay không. Ngoài ra, khi các tài liệu được chèn vào đầu quá trình truyền tải, những tài liệu đó sẽ bị bỏ sót.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Các lệnh gọi hàm đồng bộ cho trình điều khiển nodejs mongodb

  2. MongoDB:Cập nhật / Nâng cấp so với Chèn

  3. Giả lập giao dịch CouchDB / Couchbase / MongoDB?

  4. Cách tạo cơ sở dữ liệu mới trong MongoDB bằng trình điều khiển c #

  5. Nhận xét lồng nhau trong MongoDB