我是MongoDB的新手,我遇到了$replaceRoot(aggregation),我需要以我需要的方式输出文档。
文档架构
{
name: "Apple",
image: "",
is_fruit: true,
other: [
{
url: "",
quotes: { // saved as ObjectId and is then lookedup or populated
text: "An apple a day keeps the doctor away"
}
}
]
}
通缉输出
{
name: "Apple",
image: "",
is_fruit: true,
other: [
{
text: "An apple a day keeps the doctor away"
},
...
]
}
即:将引号字段作为另一个数组的根,而不是整个文档的根。
谢谢。
答案 0 :(得分:1)
嵌入式阵列没有$replaceRoot
,但使用$map
将数组转换为新格式可以达到类似的效果。
像
这样的东西db.col.aggregate([
{
"$addFields": {
"other": {
"$map": {
"input": "$other",
"as": "res",
"in": {
"text": "$$res.text"
}
}
}
}
}
])
您可以轻松地在客户端代码中执行类似操作。
答案 1 :(得分:0)