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

Verifica l'esistenza di più campi nel documento MongoDB

Non so di meglio, ma puoi sempre elaborare con JavaScript tramite $where :

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

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

Ma dovrai specificare un array di "chiavi" da controllare da qualche parte.

Se pensi di avere molte chiavi da digitare, perché non semplicemente "costruire" la tua espressione di query:

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

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

coll.find(query)

Ciò consente di risparmiare un po' di digitazione e poiché tutte le query MongoDB sono comunque solo strutture di dati, ha senso utilizzare la manipolazione dei dati di base per creare query.