gpt4 book ai didi

mongodb - 如何从mongodb中的对象数组中获取项目

转载 作者:可可西里 更新时间:2023-11-01 10:41:42 26 4
gpt4 key购买 nike

我的数据库集合是这样的

 {  "_id" : "57f4c1323eb5c694041ghea3",
"example" : [
{
"exId" : "57f4c0d43eb5c694041fdebd",
"_id" : ObjectId("57f4c1323eb5c694041fded2"),
"projects" : [
"57f4c1303eb5c694041fdec6"
]
},
{
"exId" : "57f24ee56da92f9c19b0efd4",
"_id" : ObjectId("57f4cfa93eb5c694041fdf4c"),
"projects" : [
"57f4cfa83eb5c694041fdf45"
]
},
{
"exId" : "57f24ec16da92f9c19b0efcd",
"_id" : ObjectId("580864867a36f5bc1058c2c8"),
"projects" : [
"580864837a36f5bc1058c2a9",
"57f4c1303eb5c694041fdec6"
]
}
],

我需要输出为

"example": [
{
"exId": "57f24ee56da92f9c19b0efd4",
"_id": "57f4cfa93eb5c694041fdf4c",
"projects": [
"57f4cfa83eb5c694041fdf45"
]
},
{
"exId" : "57f24ec16da92f9c19b0efcd",
"_id" : ObjectId("580864867a36f5bc1058c2c8"),
"projects" : [
"580864837a36f5bc1058c2a9",
"57f4c1303eb5c694041fdec6"
]
}
]
}

我的查询在哪里

     db.userDb.findOne({ '_id': req.params.userId }, { example: { $elemMatch: { exId: { $in: accIds } } } })

accIds 是一个包含值“57f24ec16da92f9c19b0efcd”的数组, "57f24ee56da92f9c19b0efd4", “57f24fa26da92f9c19b0f005”

但我的输出是

"example": [
{
"exId": "57f24ee56da92f9c19b0efd4",
"_id": "57f4cfa93eb5c694041fdf4c",
"projects": [
"57f4cfa83eb5c694041fdf45"
]
}

],

感谢任何帮助

最佳答案

db.collection.aggregate([
{ $unwind: '$example' },
{ $unwind: '$example.projects' },
{ $match: { 'example.exId': { $in: accIds} } },
{ $group: { _id: null, projectList: { $addToSet: '$example.projects' } } },
])

希望这会奏效。

关于mongodb - 如何从mongodb中的对象数组中获取项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41482345/

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