Jeśli masz również dokumenty, które nie mają klucza, możesz użyć:
ME.find({ pictures: { $exists: true, $not: {$size: 0} } })
MongoDB nie używa indeksów, jeśli w grę wchodzi $size, więc o to lepsze rozwiązanie:
ME.find({ pictures: { $exists: true, $ne: [] } })
Jeśli Twoja właściwość może mieć nieprawidłowe wartości (np. null
boolean
lub inne) , następnie dodaj dodatkowy czek za pomocą $types
jak zaproponowano w tej odpowiedzi:
Z mongo>=3.2:
ME.find({ pictures: { $exists: true, $type: 'array', $ne: [] } })
Z mongo <3.2:
ME.find({ pictures: { $exists: true, $type: 4, $ne: [] } })
Od wydania MongoDB 2.6 możesz porównać z operatorem $gt
ale może prowadzić do nieoczekiwanych wyników (szczegółowe wyjaśnienie można znaleźć w tej odpowiedzi):
ME.find({ pictures: { $gt: [] } })