MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

mongodb limit im eingebetteten Dokument

Die MongoDB-Dokumentation erklären, wie man einen Teilbereich eines Array-Elements auswählt.

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

Sie können diese Technik verwenden, um nur die Nachrichten auszuwählen, die für Ihre Benutzeroberfläche relevant sind. Ich bin mir jedoch nicht sicher, ob dies ein gutes Schemadesign ist. Sie sollten in Betracht ziehen, "sichtbare" Nachrichten von "archivierten" Nachrichten zu trennen. Es könnte die Abfrage etwas einfacher/schneller machen.