gpt4 book ai didi

javascript - 我如何在 Mongoose 聚合中找到数组的长度

转载 作者:行者123 更新时间:2023-11-30 20:20:07 27 4
gpt4 key购买 nike

我正在查找 mongoose 中的两个集合:

我的第一个收藏:[文件夹]

{
"_id" : ObjectId("00000000c27b9d0d045ff376"),
"folder_name" : "Testing 2",
"status" : "Y",
"parent_id" : [
ObjectId("00000000666e6e2084393a11")
],
"created_date" : ISODate("2018-07-24T15:10:38.456+05:30"),
"updated_date" : ISODate("2018-07-24T15:10:38.456+05:30")
}

我的第二个收藏:[检查]

{
"_id" : ObjectId("5b55bb043f37a8f292e1ada2"),
"project_id" : ObjectId("00000000666e6e2084393a11"),
"inspection_data" : [
{
"_id" : ObjectId("5b3b3aa86b20153284d45a54"),
},
{
"_id" : ObjectId("5b3b3aa86b20153284d45a54"),

}
]
}

我的查找查询

mongo.folder.aggregate([

{
$lookup:
{
from: 'inspections',
localField: '_id',
foreignField: 'project_id',
as: 'projectdata'
}

},


{ $match : {
$and: [
{'parent_id': ObjectId(req.body.folder_id)},

]

}
},
{
"$project": {
"_id" : 0
"inspection_count" {$size:"$projectdata.inspection_data"}

}
}

]).exec(function (err, response) {
console.log(response) // It should show inspection count as 2 but its showing 1
})

如果我正在为项目数据做放松意味着我只得到一个数据。有没有其他方法可以做到这一点

最佳答案

$lookup 返回一个数组。有点像

{"projectdata":[{... "inspection_data" : [{},{}]}]}

所以 projectdata.inspection_data 是数组的数组,即 [[{},{}]],大小为 1。 使用 $arrayElemAt使用索引 0 访问内部数组,后跟 $size返回检查数据的长度。

"inspection_count" {"$size":{"$arrayElemAt":["$projectdata.inspection_data",0]}}

关于javascript - 我如何在 Mongoose 聚合中找到数组的长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51535725/

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