sql >> Base de Datos >  >> NoSQL >> MongoDB

Encuentre registros de MongoDB donde el campo de matriz no esté vacío

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: [] } })