我正在创建一个Mongo视图n,以便根据需要向前端客户端提供数据形状。最初我有一个看起来像这样的文档:
{
"_id" : <value>,
"region" : "Midwest",
"dob" : ISODate("1989-07-21T05:00:00.000+0000"),
"paymentOption" : {
"_id" : <value>,
"anotherProp" : <value>
"coverage" : {
"status" : "active",
"coverageEnd" : ISODate("2020-07-31T00:00:00.000+0000"),
"coverageStart" : ISODate("2018-08-01T00:00:00.000+0000"),
},
}
}
......,我要做的是从“ paymentOption”中获取“ coverage”,并将其放在文档的根目录中,并命名为“ coverage”,然后删除“ paymentOption”。>
为此,我尝试了以下操作:
$addFields: {
"coverage" : { "paymentOption.coverage" : {$exists: true} }
}
...但是会产生错误:
无效的$ addFields规范:不能使用点分隔的字段名
如何更改此操作以生成此文档?
{
"_id" : <value>,
"region" : "Midwest",
"dob" : ISODate("1989-07-21T05:00:00.000+0000"),
"coverage" : {
"status" : "active",
"coverageEnd" : ISODate("2020-07-31T00:00:00.000+0000"),
"coverageStart" : ISODate("2018-08-01T00:00:00.000+0000"),
}
}
答案 0 :(得分:1)
这将为您做到:
db.collection.aggregate([
{
$addFields: {
"coverage": "$paymentOption.coverage"
}
},
{
$project: {
paymentOption: 0
}
}
])
您可以看到它working here
由于尝试访问$
字段,您会发现缺少paymentOption
运算符。