sql >> Databáze >  >> NoSQL >> MongoDB

Dotaz na seznam v mongoengine; obsahuje vs

Řetězcové dotazy normálně pod krytem jsou všechny dotazy na regulární výraz, takže by byly méně efektivní. Výjimkou je však testování proti referenčním polím! Následující dotazy jsou:

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

Což je přímé vyhledávání.

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

To je pravděpodobně méně efektivní, ale pravděpodobně by to bylo extrémně okrajové. Největší dopad by měl počet dokumentů a to, zda jsou či nejsou refs pole má index.




  1. Hlášení MongoDB a BIRT?

  2. Souhrnný dotaz Mongodb, nebo příliš složitý?

  3. Jaké jsou výhody použití databáze bez schémat, jako je MongoDB, ve srovnání s relační databází?

  4. Jak vytvořit a používat Enum v Mongoose