Als u ook documenten heeft die de sleutel niet hebben, kunt u het volgende gebruiken:
ME.find({ pictures: { $exists: true, $not: {$size: 0} } })
MongoDB gebruikt geen indexen als het om $size gaat, dus hier is een betere oplossing:
ME.find({ pictures: { $exists: true, $ne: [] } })
Als uw eigenschap ongeldige waarden kan hebben (zoals null
boolean
of anderen), dan voeg je een extra controle toe met $types
zoals voorgesteld in dit antwoord:
Met mongo>=3,2:
ME.find({ pictures: { $exists: true, $type: 'array', $ne: [] } })
Met mongo <3.2:
ME.find({ pictures: { $exists: true, $type: 4, $ne: [] } })
Sinds de release van MongoDB 2.6 kun je vergelijken met de operator $gt
maar kan tot onverwachte resultaten leiden (een gedetailleerde uitleg vindt u in dit antwoord):
ME.find({ pictures: { $gt: [] } })