Dokumentacja MongoDB wyjaśnij, jak wybrać podzakres elementu tablicy.
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
Możesz użyć tej techniki, aby wybrać tylko wiadomości, które są istotne dla Twojego interfejsu użytkownika. Jednak nie jestem pewien, czy jest to dobry projekt schematu. Możesz rozważyć oddzielenie wiadomości „widocznych” od wiadomości „zarchiwizowanych”. Może to sprawić, że zapytania będą nieco łatwiejsze/szybsze.