我正在寻找 MongoDB 聚合来替换数组
['a', 'b', 'c']
类似的东西
[ {"i":1,"element":"a"}, {"i":2,"element":"b"}, {"i":3,"element":"c"} ]
谢谢
答案 0 :(得分:0)
$map
使用 lyrics
$range
数组长度的循环
$add
在当前索引中加 1,因为范围从 0 开始$arrayElemAt
从 lyrics
数组中获取特定元素db.collection.aggregate([
{
$set: {
lyrics: {
$map: {
input: { $range: [0, { $size: "$lyrics" }] },
in: {
i: { $add: ["$$this", 1] },
element: { $arrayElemAt: ["$lyrics", "$$this"] }
}
}
}
}
}
])