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

Forespørgsel på en liste i mongoengine; indeholder vs in

Strengforespørgslerne, der normalt er under omslagene, er alle regex-forespørgsler, så de ville være mindre effektive. Undtagelsen er dog, når der testes mod referencefelter! Følgende forespørgsler er:

Model.objects.filter(refs__contains="5305c92956c02c3f391fcaba")._query
{'refs': ObjectId('5305c92956c02c3f391fcaba')}

Hvilket er et direkte opslag.

Model.objects.filter(refs__in=["5305c92956c02c3f391fcaba"])._query
{'refs': {'$in': [ObjectId('5305c92956c02c3f391fcaba')]}}

Dette er sandsynligvis mindre effektivt, men vil sandsynligvis være yderst marginalt. Den største indvirkning ville være antallet af dokumenter og om refs eller ej feltet har et indeks.




  1. Mongo DB kunne ikke startes

  2. Hvordan tæller man alle unikke værdier i MONGODB?

  3. Forespørgsel til en MongoDB baseret på Mongo ID i en node.js app

  4. Sådan opretter du mongoose-skema med en række objekter