MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Vérifier l'existence de plusieurs champs dans le document MongoDB

Je ne sais pas mieux, mais vous pouvez toujours traiter avec JavaScript via $where :

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

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

Mais vous allez devoir spécifier un tableau de "clés" à vérifier quelque part.

Si vous pensez que vous avez beaucoup de clés à taper, alors pourquoi ne pas simplement "construire" votre expression de requête :

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

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

coll.find(query)

Cela permet d'économiser un peu de frappe et puisque toutes les requêtes MongoDB ne sont que des structures de données de toute façon, il est logique d'utiliser la manipulation de données de base pour créer des requêtes.