MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Consulta a matriz de documentos aninhados para o valor mais alto do campo


Você também pode tentar uma abordagem moderna - estrutura de agregação :

1) Encontre o 'valor' máximo da matriz para todos os elementos na coleção:
db.collection.aggregate([
    { $unwind: "$array" },
    { $group: { _id: "$_id", value: { $max: "$array.value" } } }
]);

2) Encontre o 'valor' máximo da matriz para o elemento especificado:
db.collection.aggregate([
    { $match: { _id: new ObjectId("526d89571cd72ce9dbb6b443") } },
    { $unwind: "$array" },
    { $group: { _id: null, value: { $max: "$array.value" } } }
]);

Use o nome real da coleção em vez de collection nestes exemplos.

Algumas informações sobre como usar a agregação no driver Java MongoDB:Driver Java e Estrutura de Agregação .