Ако имате и документи, които нямат ключа, можете да използвате:
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: [] } })