De MongoDB-documenten uitleggen hoe je een subbereik van een array-element selecteert.
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
U kunt deze techniek gebruiken om alleen de berichten te selecteren die relevant zijn voor uw gebruikersinterface. Ik weet echter niet zeker of dit een goed schemaontwerp is. U kunt overwegen om "zichtbare" berichten te scheiden van "gearchiveerde" berichten. Het kan het opvragen wat makkelijker/sneller maken.