gpt4 book ai didi

MongoDB 合并展开的文档

转载 作者:可可西里 更新时间:2023-11-01 10:36:22 25 4
gpt4 key购买 nike

我正在创建一个 mongo 聚合管道,我在其中通过作为列表的字段(门)展开文档。然后,我根据单个门中属性的条件进行过滤。

我如何将过滤后的结果重新组合在一起,使结果保持其原始形式?

这是我收藏中的一个文档示例:

{ "uuid": "00000000-0000-0000-0000-000000000000",
"name": "Building1",
"doors": [
{
"doorUuid": "11111111-1111-1111-1111-111111111111",
"creationTime": null
},
{
"doorUuid": "22222222-2222-2222-2222-222222222222",
"creationTime": 1560194908942
},
{
"doorUuid": "33333333-3333-3333-3333-333333333333",
"creationTime": 1560195008942
}
]
}

例如,如果我想过滤掉所有 creationTime 为空的门,我想要的输出将具有与上面相同的结构,但只有两扇门。

最佳答案

$group$push:

MongoPlayground

db.collection.aggregate([
{
$unwind: "$doors"
},
{
$match: {
"doors.creationTime": {
$ne: null
}
}
},
{
$group: {
_id: "$_id",
name: {
$last: "$name"
},
uuid: {
$last: "$uuid"
},
doors: {
$push: "$doors"
}
}
}
])

关于MongoDB 合并展开的文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56567888/

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