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

Намерете записи на MongoDB, където полето на масива не е празно

Ако имате и документи, които нямат ключа, можете да използвате:

ME.find({ pictures: { $exists: true, $not: {$size: 0} } })

MongoDB не използва индекси, ако е включен $size, така че ето по-добро решение:

ME.find({ pictures: { $exists: true, $ne: [] } })

Ако свойството ви може да има невалидни стойности (като null boolean или други) , след което добавяте допълнителна проверка с помощта на $types както се предлага в този отговор:

С монго>=3.2:

ME.find({ pictures: { $exists: true, $type: 'array', $ne: [] } })

С монго <3.2:

ME.find({ pictures: { $exists: true, $type: 4, $ne: [] } })

От изданието на MongoDB 2.6 можете да сравните с оператора $gt но може да доведе до неочаквани резултати (можете да намерите подробно обяснение в този отговор):

ME.find({ pictures: { $gt: [] } })


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB $превключвател

  2. Изчислете стойността на пропускане за даден запис за сортирани страници

  3. свързване към локален mongodb от докер контейнер

  4. Може ли MongoDB да използва индекс, когато проверява за съществуване на поле с оператор $exists?

  5. MongoDB - Запитване между времеви диапазон от часове