Hvis du også har dokumenter, der ikke har nøglen, kan du bruge:
ME.find({ pictures: { $exists: true, $not: {$size: 0} } })
MongoDB bruger ikke indekser, hvis $size er involveret, så her er en bedre løsning:
ME.find({ pictures: { $exists: true, $ne: [] } })
Hvis din ejendom kan have ugyldige værdier (såsom null
boolean
eller andre), så tilføjer du en ekstra kontrol ved hjælp af $types
som foreslået i dette svar:
Med mongo>=3.2:
ME.find({ pictures: { $exists: true, $type: 'array', $ne: [] } })
Med mongo <3.2:
ME.find({ pictures: { $exists: true, $type: 4, $ne: [] } })
Siden MongoDB 2.6 udgivelsen, kan du sammenligne med operatoren $gt
men kan føre til uventede resultater (du kan finde en detaljeret forklaring i dette svar):
ME.find({ pictures: { $gt: [] } })