La documentation MongoDB expliquer comment sélectionner une sous-gamme d'un élément de tableau.
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
Vous pouvez utiliser cette technique pour sélectionner uniquement les messages pertinents pour votre interface utilisateur. Cependant, je ne suis pas sûr que ce soit une bonne conception de schéma. Vous pouvez envisager de séparer les messages "visibles" des messages "archivés". Cela pourrait rendre l'interrogation un peu plus facile/rapide.