gpt4 book ai didi

mongodb - 如何在 MongoDB 上创建包含数组的数组

转载 作者:行者123 更新时间:2023-12-04 10:07:08 24 4
gpt4 key购买 nike

我正在尝试向 mongodb 进行查询。我想获得一个包含每个文档的 [location, status] 的数组。
这就是我的收藏的样子

{
"_id": 1,
"status": "OPEN",
"location": "Costa Rica",
"type": "virtual store"
},
{
"_id": 2,
"status": "CLOSED",
"location": "El Salvador"
"type": "virtual store"
},
{
"_id": 3,
"status": "OPEN",
"location": "Mexico",
"type": "physical store"
},
{
"_id": 4,
"status": "CLOSED",
"location": "Nicaragua",
"type": "physical store"
}

我使用聚合框架进行了查询,尝试获取与该特定商店类型匹配的所有文档。
{
{'$match': {
'type': { '$eq': "physical store"}
}
}

我想要的是这样的:
{
{
'stores': [
["Mexico", "OPEN"],
["Nicaragua", "CLOSED"]
]
},
}

我尝试使用 $push 但无法成功。
有人可以指导我如何做。

最佳答案

{ $push: ["$location", "$status"] }会给你错误 The $push accumulator is a unary operator .您必须通过向它传递一个输出所需数组的单个对象来解决它。一种方法是:

[
{
"$match": {
"type": {
"$eq": "physical store"
}
}
},
{
"$group": {
"_id": null,
"stores": {
"$push": {
"$slice": [["$location", "$status"], 2]
}
}
}
}
]

关于mongodb - 如何在 MongoDB 上创建包含数组的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61529146/

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