Wenn Sie auch Dokumente haben, die den Schlüssel nicht haben, können Sie Folgendes verwenden:
ME.find({ pictures: { $exists: true, $not: {$size: 0} } })
MongoDB verwendet keine Indizes, wenn $size beteiligt ist, daher ist hier eine bessere Lösung:
ME.find({ pictures: { $exists: true, $ne: [] } })
Wenn Ihre Eigenschaft ungültige Werte haben kann (wie null
boolean
oder andere) , dann fügen Sie eine zusätzliche Prüfung mit $types
hinzu wie in dieser Antwort vorgeschlagen:
Mit Mongo>=3.2:
ME.find({ pictures: { $exists: true, $type: 'array', $ne: [] } })
Mit Mongo <3.2:
ME.find({ pictures: { $exists: true, $type: 4, $ne: [] } })
Seit der Veröffentlichung von MongoDB 2.6 können Sie mit dem Operator $gt
vergleichen kann aber zu unerwarteten Ergebnissen führen (eine detaillierte Erklärung finden Sie in dieser Antwort):
ME.find({ pictures: { $gt: [] } })