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

Zkontrolujte existenci více polí v dokumentu MongoDB

Nevím o lepším, ale vždy můžete zpracovat pomocí JavaScriptu přes $where :

jsStr = """var doc = this;
           return ['result1','result2','result3']
           .every(function(key) { 
               return doc.hasOwnProperty(key) 
           });"""

coll.find({ "$where": jsStr })

Ale budete muset zadat pole "klíčů", které chcete někde zkontrolovat.

Pokud si myslíte, že máte k psaní mnoho klíčů, tak proč jednoduše „nevytvořit“ výraz dotazu:

whitelist = [ "result1", "result2", "result3" ]
query = {}

for key in whitelist:
    query[key] = { "$exists": True }

coll.find(query)

To ušetří trochu psaní a protože všechny dotazy MongoDB jsou stejně jen datové struktury, použití základní manipulace s daty k vytváření dotazů dává smysl.



  1. Jak najít dokument podle částí ObjectId?

  2. Jak ověřit klíče a hodnoty objektů v Mongoose Schema?

  3. Možnosti fulltextového vyhledávání pro nastavení MongoDB

  4. Najděte a odstraňte všechny dokumenty, jejichž datum vytvoření je o měsíc starší