Tài liệu MongoDB giải thích cách chọn một dải con của một phần tử mảng.
db.dialogs.find({"_id": [dialogId]}, {msgs:{$slice: 5}}) // first 5 comments
db.dialogs.find({"_id": [dialogId]}, {msgs:{$slice: -5}}) // last 5 comments
db.dialogs.find({"_id": [dialogId]}, {msgs:{$slice: [20, 10]}}) // skip 20, limit 10
db.dialogs.find({"_id": [dialogId]}, {msgs:{$slice: [-20, 10]}}) // 20 from end, limit 10
Bạn có thể sử dụng kỹ thuật này để chỉ chọn các thông báo có liên quan đến giao diện người dùng của bạn. Tuy nhiên, tôi không chắc rằng đây là một thiết kế lược đồ tốt. Bạn có thể muốn xem xét việc tách thư "hiển thị" khỏi thư "lưu trữ". Nó có thể làm cho việc truy vấn dễ dàng / nhanh hơn một chút.