Nie wiem o lepszych, ale zawsze możesz przetwarzać z JavaScriptem przez $where
:
jsStr = """var doc = this;
return ['result1','result2','result3']
.every(function(key) {
return doc.hasOwnProperty(key)
});"""
coll.find({ "$where": jsStr })
Ale będziesz musiał określić tablicę "kluczy", aby gdzieś sprawdzić.
Jeśli uważasz, że masz dużo kluczy do wpisania, dlaczego nie „zbudować” swojego wyrażenia zapytania:
whitelist = [ "result1", "result2", "result3" ]
query = {}
for key in whitelist:
query[key] = { "$exists": True }
coll.find(query)
Oszczędza to trochę pisania, a ponieważ wszystkie zapytania MongoDB i tak są tylko strukturami danych, użycie podstawowej manipulacji danymi do tworzenia zapytań ma sens.