Dokumenty MongoDB vysvětlit, jak vybrat podrozsah prvku pole.
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
Tuto techniku můžete použít pouze k výběru zpráv, které jsou relevantní pro vaše uživatelské rozhraní. Nejsem si však jistý, zda je to dobrý návrh schématu. Možná budete chtít oddělit „viditelné“ zprávy od „archivovaných“. Mohlo by to trochu usnadnit/urychlit dotazování.