MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Interroger une liste dans mongoengine ; contient vs dans

Les requêtes de chaîne normalement sous les couvertures sont toutes des requêtes regex et seraient donc moins efficaces. Cependant, l'exception est lors du test par rapport aux champs de référence ! Les requêtes suivantes sont :

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

Qui est une recherche directe.

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

Ceci est probablement moins efficace, mais serait probablement extrêmement marginal. Le plus grand impact serait le nombre de documents et si oui ou non les refs le champ a un index.