sql >> Databasteknik >  >> NoSQL >> MongoDB

Kontrollera om det finns flera fält i MongoDB-dokument

Jag vet inte om bättre, men du kan alltid bearbeta 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 kommer att behöva specificera en uppsättning "nycklar" för att leta efter någonstans.

Om du tror att du har många nycklar att skriva ut, varför inte bara "bygga" ditt frågeuttryck:

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

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

coll.find(query)

Det sparar lite skrivning och eftersom alla MongoDB-frågor ändå bara är datastrukturer, är det meningsfullt att använda grundläggande datamanipulation för att skapa frågor.



  1. Undantag använder mongodb som infinispan-cachebutik

  2. Bästa sättet att fråga alla dokument från en mongodb-samling på ett reaktivt sätt utan översvämning av RAM

  3. Returnerar en tom uppsättning inlägg när du använder mongoose populate

  4. Mongo Ger 'duplicerat nyckelfel' på icke-unika fält