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

Thêm một số loại số hàng vào lệnh / đường ống tổng hợp mongodb

Không chắc chắn về hiệu suất trong các truy vấn lớn, nhưng đây ít nhất là một tùy chọn.

Bạn có thể thêm kết quả của mình vào một mảng bằng cách nhóm / đẩy và sau đó thư giãn với includeArrayIndex như thế này:

[
  {$match: {author: {$ne: 1}}},
  {$limit: 10000},
  {$group: {
    _id: 1,
    book: {$push: {title: '$title', author: '$author', copies: '$copies'}}
  }},
  {$unwind: {path: '$book', includeArrayIndex: 'rownum'}},
  {$project: {
    author: '$book.author',
    title: '$book.title',
    copies: '$book.copies',
    rownum: 1
  }}
]

Bây giờ, nếu cơ sở dữ liệu của bạn chứa một lượng lớn bản ghi và bạn định phân trang, bạn có thể sử dụng giai đoạn $ bỏ qua và sau đó $ giới hạn 10 hoặc 20 hoặc bất kỳ thứ gì bạn muốn hiển thị trên mỗi trang và chỉ cần thêm số từ $ bỏ qua chuyển sang sân khấu của bạn và bạn sẽ có được vị trí thực mà không cần phải đẩy tất cả các kết quả của mình để liệt kê chúng.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Làm thế nào để lắng nghe các thay đổi đối với bộ sưu tập MongoDB?

  2. Tổng hợp Mongodb $ group, giới hạn độ dài của mảng

  3. MongoDB So khớp một mảng với $ type?

  4. Cách gọi db.Collection.stats () từ trình điều khiển java Mongo

  5. Làm thế nào để triển khai has_many:thông qua các mối quan hệ với Mongoid và mongodb?