gpt4 book ai didi

MongoDb 查询以获取数组内字段的最大值

转载 作者:行者123 更新时间:2023-12-03 18:32:49 24 4
gpt4 key购买 nike

如何在下面的文档中获得最大的sections.Id,其中collection._id = some parameter

{
"_id" : ObjectId("571c5c87faf473f40fd0317c"),
"name" : "test 1",
"sections" : [
{
"Id" : 1,
"name" : "first section"
},
{
"Id" : 2,
"name" : "section 2"
},
{
"Id" : 3,
"name" : "section 3"
}
}

我在下面试过
db.collection.aggregate(
[
{
"$match": {
"_id": ObjectId("571c5c87faf473f40fd0317c")
}
},
{
"$group" : {
"_id" : "$_id",
"maxSectionId" : {"$max" : "$sections.Id"}
}
}
]);

但是它不是返回 max int 单个值,而是返回部分数组中所有 Id 的数组。

在 node.js 中执行进一步相同的查询时,它返回一个空数组。

最佳答案

您可以使用简单的 $project 阶段

类似 this

db.collection.aggregate([
{ "$project": {
"maxSectionId": {
"$arrayElemAt": [
"$sections",
{
"$indexOfArray": [
"$sections.Id",
{ "$max": "$sections.Id" }
]
}
]
}
}}
])

关于MongoDb 查询以获取数组内字段的最大值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36824601/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com