Ik weet niet hoe het beter is, maar je kunt altijd met JavaScript verwerken via $where
:
jsStr = """var doc = this;
return ['result1','result2','result3']
.every(function(key) {
return doc.hasOwnProperty(key)
});"""
coll.find({ "$where": jsStr })
Maar je zult een reeks "sleutels" moeten specificeren om ergens naar te zoeken.
Als u denkt dat u veel sleutels moet typen, waarom "bouwt" u dan niet gewoon uw zoekexpressie:
whitelist = [ "result1", "result2", "result3" ]
query = {}
for key in whitelist:
query[key] = { "$exists": True }
coll.find(query)
Dat scheelt een beetje typen en aangezien alle MongoDB-query's toch maar gegevensstructuren zijn, is het logisch om basisgegevensmanipulatie te gebruiken om query's te bouwen.