Jag vet inte om bättre, men du kan alltid bearbeta med JavaScript via $where
:
jsStr = """var doc = this;
return ['result1','result2','result3']
.every(function(key) {
return doc.hasOwnProperty(key)
});"""
coll.find({ "$where": jsStr })
Men du kommer att behöva specificera en uppsättning "nycklar" för att leta efter någonstans.
Om du tror att du har många nycklar att skriva ut, varför inte bara "bygga" ditt frågeuttryck:
whitelist = [ "result1", "result2", "result3" ]
query = {}
for key in whitelist:
query[key] = { "$exists": True }
coll.find(query)
Det sparar lite skrivning och eftersom alla MongoDB-frågor ändå bara är datastrukturer, är det meningsfullt att använda grundläggande datamanipulation för att skapa frågor.