Si también tiene documentos que no tienen la clave, puede usar:
ME.find({ pictures: { $exists: true, $not: {$size: 0} } })
MongoDB no usa índices si $size está involucrado, así que aquí hay una mejor solución:
ME.find({ pictures: { $exists: true, $ne: [] } })
Si su propiedad puede tener valores no válidos (como null
boolean
u otros), luego puede agregar una verificación adicional usando $types
como se propone en esta respuesta:
Con mongo>=3.2:
ME.find({ pictures: { $exists: true, $type: 'array', $ne: [] } })
Con mongo <3.2:
ME.find({ pictures: { $exists: true, $type: 4, $ne: [] } })
Desde el lanzamiento de MongoDB 2.6, puede comparar con el operador $gt
pero podría conducir a resultados inesperados (puede encontrar una explicación detallada en esta respuesta):
ME.find({ pictures: { $gt: [] } })