微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

java – 查询嵌套文档的数组以获得最高的字段值

我正在尝试查询mongodb中的嵌套文档数组,并获取该嵌套文档中特定字段的最高值. (在java中)

这是文档结构的一个示例,我想在其中找到数组中“value”字段的最大值.

{
    "_id" : ObjectId("526d89571cd72ce9dbb6b443"),
    "array" : [ 
         {"text" : "this is a nested document", "value" : 1 },
         {"text" : "this is another nested document", "value" : 2 }
    ]
}

解决方法:

您也可以尝试现代方法aggregation framework

1)为集合中的所有元素找到最大数组’value’:

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

2)找到指定元素的最大数组’值’:

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

在这些示例中使用真实集合名称而不是集合.

有关如何在Java MongoDB驱动程序中使用聚合的一些信息:Java Driver and Aggregation Framework.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐