MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Проверете за съществуването на множество полета в MongoDB документ

Не знам за по-добро, но винаги можете да обработвате с JavaScript чрез $where :

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

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

Но ще трябва да посочите масив от "ключове", които да проверите някъде.

Ако смятате, че имате много ключове за въвеждане, тогава защо просто не „изградите“ своя израз за заявка:

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

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

coll.find(query)

Това спестява малко писане и тъй като всички MongoDB заявки така или иначе са просто структури от данни, тогава използването на основна манипулация на данни за изграждане на заявки има смисъл.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Синтаксис на Java с MongoDB

  2. Как да разрешите на всички хостове да имат реплика, зададена в mongodb

  3. Съхранявайте dataURL в MongoDB за достъп до него чрез локален URL (JS)

  4. Няма наличен косвен изглед

  5. Как да намеря топ 5 стойности в mongodb? и не трябва да съдържа същата стойност