sql >> Database teknologi >  >> NoSQL >> MongoDB

Kontroller, om der findes flere felter i MongoDB-dokumentet

Jeg ved ikke om bedre, men du kan altid behandle 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 bliver nødt til at angive en række "nøgler" for at søge efter et eller andet sted.

Hvis du tror, ​​du har mange nøgler at skrive ud, hvorfor så ikke bare "bygge" dit forespørgselsudtryk:

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

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

coll.find(query)

Det sparer en smule indtastning, og da alle MongoDB-forespørgsler alligevel kun er datastrukturer, giver det mening at bruge grundlæggende datamanipulation til at bygge forespørgsler.



  1. Flask MongoEngine sideinddelte dokumenter med billedfelt

  2. MongoDB - skal mit brugerdokument indeholde en liste over projekt-id'er?

  3. Opret og find GeoLocation i mongoose

  4. MongoDB prik (.) i nøglenavn