MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Prüfen Sie, ob mehrere Felder im MongoDB-Dokument vorhanden sind

Ich weiß es nicht besser, aber Sie können immer mit JavaScript über verarbeiten $where :

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

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

Aber Sie müssen ein Array von "Schlüsseln" angeben, um nach irgendwo zu suchen.

Wenn Sie denken, dass Sie viele Schlüssel eingeben müssen, warum "erstellen" Sie dann nicht einfach Ihren Abfrageausdruck:

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

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

coll.find(query)

Das spart ein wenig Tipparbeit, und da alle MongoDB-Abfragen sowieso nur Datenstrukturen sind, ist die Verwendung grundlegender Datenmanipulation zum Erstellen von Abfragen sinnvoll.