MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Abfrage nach Dokumenten, bei denen die Arraygröße größer als 1 ist

In MongoDB 2.2+ gibt es jetzt eine effizientere Möglichkeit, dies zu tun, da Sie numerische Array-Indizes (0-basiert) in Abfrageobjektschlüsseln verwenden können.

// Find all docs that have at least two name array elements.
db.accommodations.find({'name.1': {$exists: true}})

Sie können diese Abfrage mit einem Index unterstützen, der einen partiellen Filterausdruck verwendet (erfordert 3.2+):

// index for at least two name array elements
db.accommodations.createIndex(
    {'name.1': 1},
    {partialFilterExpression: {'name.1': {$exists: true}}}
);