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

Array verschachtelter Dokumente nach dem höchsten Feldwert abfragen

Sie können auch einen modernen Ansatz ausprobieren - Aggregation Framework :

1) Finden Sie den maximalen Array-'Wert' für alle Elemente in der Sammlung:

db.collection.aggregate([
    { $unwind: "$array" },
    { $group: { _id: "$_id", value: { $max: "$array.value" } } }
]);

2) Finden Sie den maximalen Array-'Wert' für das angegebene Element:

db.collection.aggregate([
    { $match: { _id: new ObjectId("526d89571cd72ce9dbb6b443") } },
    { $unwind: "$array" },
    { $group: { _id: null, value: { $max: "$array.value" } } }
]);

Verwenden Sie den echten Sammlungsnamen anstelle von collection in diesen Beispielen.

Einige Informationen zur Verwendung der Aggregation im Java MongoDB-Treiber:Java-Treiber und Aggregation Framework .