sql >> Database teknologi >  >> NoSQL >> MongoDB

mongodb-grænse i det indlejrede dokument

MongoDB-dokumenterne forklare, hvordan man vælger et underområde af et array-element.

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

Du kan bruge denne teknik til kun at vælge de beskeder, der er relevante for din brugergrænseflade. Jeg er dog ikke sikker på, at dette er et godt skemadesign. Du vil måske overveje at adskille "synlige" beskeder fra "arkiverede" beskeder. Det kan måske gøre forespørgslen lidt nemmere/hurtigere.



  1. Opdater objekt inde i arrayet i mongoDb ved hjælp af mongoose

  2. Hvordan kan jeg bruge et felt fra aggregat i et regex $match i mongodb?

  3. Flask-PyMongo collMod

  4. Udkast til dokumenter i Mongo