[英]$project inside MongoDB array
我有 MongoDB 收集items
與以下文件:
{
data: [{"name": "First"}, {"name": "Second"}],
data2: [{"value": 20}, {"value": 30}]
}
有沒有辦法將data2.value
投影到同一索引上的data.value
中? 我需要這個結果:
{
data: [
{"name": "First", value: 20},
{"name": "Second", value: 30}
]
}
它想要這樣的東西:
db.items.aggregate([{"$project": {"data.X.value": "$data2.X.value", "data2": 0}}]) // Where X "iterate" over all indexes (so 0 and 1).
arrays data
和data2
的長度始終相同,但不必為 2。
你可以試試,
data
數組的 object 循環遍歷 object$$d
$$d
object 索引中獲取data2
的元素value
db.collection.aggregate([
{
$project: {
data: {
$map: {
input: "$data",
as: "d",
in: {
name: "$$d.name",
value: {
$arrayElemAt: [
"$data2.value",
{ $indexOfArray: ["$data", "$$d"] }
]
}
}
}
}
}
}
])
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.