If you also have documents that don't have the key, you can use:
ME.find({ pictures: { $exists: true, $not: {$size: 0} } })
MongoDB don't use indexes if $size is involved, so here is a better solution:
ME.find({ pictures: { $exists: true, $ne: [] } })
If your property can have invalid values (like null
boolean
or others) , then you an add an additional check using $types
as proposed in this answer:
With mongo >= 3.2:
ME.find({ pictures: { $exists: true, $type: 'array', $ne: [] } })
With mongo < 3.2:
ME.find({ pictures: { $exists: true, $type: 4, $ne: [] } })
Since MongoDB 2.6 release, you can compare with the operator $gt
but could lead to unexpected results (you can find a detailled explanation in this answer):
ME.find({ pictures: { $gt: [] } })
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…