gpt4 book ai didi

mongodb - 返回嵌入式数组的联合

转载 作者:可可西里 更新时间:2023-11-01 09:49:50 27 4
gpt4 key购买 nike

我有一个文档集合,每个文档都有一个数组。我想得到一个数组,它是文档的嵌入式数组的联合结果。

这是我的收藏:

{
"_id": ObjectId("...."),
"filter": "a",
"images": [
{
"_id": ObjectId("...."),
"file": "file_a_1.jpg"
},
{
"_id": ObjectId("...."),
"file": "file_a_2.jpg"
}
]
},
{
"_id": ObjectId("...."),
"filter": "b",
"images": [
{
"_id": ObjectId("...."),
"file": "file_b_3.jpg"
},
{
"_id": ObjectId("...."),
"file": "file_b_4.jpg"
}
]
},
{
"_id": ObjectId("...."),
"filter": "a",
"images": [
{
"_id": ObjectId("...."),
"file": "file_a_5.jpg"
},
{
"_id": ObjectId("...."),
"file": "file_a_6.jpg"
}
]
}

例如,我想使用 filter = "a" 获取文档的嵌入式数组。

{
"_id": ObjectId("...."),
"file": "file_a_1.jpg"
},
{
"_id": ObjectId("...."),
"file": "file_a_2.jpg"
},
{
"_id": ObjectId("...."),
"file": "file_a_5.jpg"
},
{
"_id": ObjectId("...."),
"file": "file_a_6.jpg"
}

而且我希望能够限制返回数组的大小和偏移量。

最佳答案

你需要展开这样的数组,然后投影以获得新的文档形状。

db.david1.aggregate([{
$match : {
"filter" : "a"
}
}, {
$unwind : "$images"
}, {
$project : {
_id : "$images._id",
file : "$images.file"
}
}, {
$skip : 2
}, {
$limit : 1
}
]).toArray()

关于mongodb - 返回嵌入式数组的联合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37962340/

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