MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Verifique a existência de vários campos no documento MongoDB


Não conheço melhor, mas você sempre pode processar com JavaScript via $where :
jsStr = """var doc = this;
           return ['result1','result2','result3']
           .every(function(key) { 
               return doc.hasOwnProperty(key) 
           });"""

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

Mas você terá que especificar uma matriz de "chaves" para verificar em algum lugar.

Se você acha que tem muitas chaves para digitar, por que não apenas "construir" sua expressão de consulta:
whitelist = [ "result1", "result2", "result3" ]
query = {}

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

coll.find(query)

Isso economiza um pouco de digitação e, como todas as consultas do MongoDB são apenas estruturas de dados, o uso de manipulação básica de dados para criar consultas faz sentido.