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.