Om du också har dokument som inte har nyckeln kan du använda:
ME.find({ pictures: { $exists: true, $not: {$size: 0} } })
MongoDB använder inte index om $size är inblandat, så här är en bättre lösning:
ME.find({ pictures: { $exists: true, $ne: [] } })
Om din egendom kan ha ogiltiga värden (som null
boolean
eller andra) , sedan lägger du till en extra kontroll med $types
som föreslås i detta 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: [] } })
Sedan MongoDB 2.6 släpptes kan du jämföra med operatorn $gt
men kan leda till oväntade resultat (du kan hitta en detaljerad förklaring i det här svaret):
ME.find({ pictures: { $gt: [] } })