gpt4 book ai didi

mongodb - MongoDB聚合中添加数组元素字段

转载 作者:可可西里 更新时间:2023-11-01 09:38:04 24 4
gpt4 key购买 nike

我有一个包含对象数组的文档集合:

db.collection.insert({
arr: [
{ id: 1, text: 'foo' },
{ id: 2, text: 'bar' },
]
});

有没有办法在该数组中提取/投影/添加一个元素的字段?例如,数组第一个元素的 text 字段。我试过 $addFields 的各种变体在 MongoPlayground ,

db.collection.aggregate([
{
$addFields: { text1: '$arr.text' }
}
]);

但没有任何东西只产生一个 text 字段。充其量,我得到了两个,用上面的语法,但我只想要一个字段,以便在其上使用 $type,因为它出现 $type can't inspect array elements .

最佳答案

您可以使用 $let$arrayElemAt定义临时变量然后引用它以获取 text 字段:

db.collection.aggregate([
{
$addFields: {
text1: {
$let: {
vars: {
first: {
$arrayElemAt: [ "$arr", 0 ]
}
},
in: "$$first.text"
}
}
}
}
])

关于mongodb - MongoDB聚合中添加数组元素字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56573224/

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