sql >> Base de Datos >  >> NoSQL >> MongoDB

Verifique la existencia de múltiples campos en el documento MongoDB

No sé si es mejor, pero siempre puedes procesar con JavaScript a través de $where :

jsStr = """var doc = this;
           return ['result1','result2','result3']
           .every(function(key) { 
               return doc.hasOwnProperty(key) 
           });"""

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

Pero tendrá que especificar una matriz de "claves" para buscar en algún lugar.

Si cree que tiene muchas claves para escribir, ¿por qué no simplemente "construir" su expresión de consulta:

whitelist = [ "result1", "result2", "result3" ]
query = {}

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

coll.find(query)

Eso ahorra un poco de escritura y dado que todas las consultas de MongoDB son solo estructuras de datos de todos modos, entonces tiene sentido usar la manipulación básica de datos para crear consultas.