{Crs:{[
{Cr: {
"_id" : ObjectId("5a75baada0f20bd4e612d480"),
"Number" : 400,
"Page" : 24,
"DC" : "NE",
}},
{Cr: {
"_id" : ObjectId("5a75baada0f20bd4e612d489"),
"Number" : 300,
"Page" : 14,
"DC" : "100",
}},
]}}
我有使用聚合建模的数据,我想知道如何使用聚合从数组的所有元素中删除“DC”字段。
>db.crs.aggregate(
[
{$group : {_id : null, crs : {$push : {cr : "$$ROOT"}}}},
{$project : {_id : 0}}
]
)
这就是对数据进行建模的方法。 我认为它与 $project 有关。
最佳答案
首先,您的文档不是有效的 JSON 架构。您可以重新考虑该特定文档的以下架构。
{
Crs:[
{
"_id" : ObjectId("5a75baada0f20bd4e612d480"),
"Number" : 400,
"Page" : 24,
"DC" : "NE"
},
{
"_id" : ObjectId("5a75baada0f20bd4e612d489"),
"Number" : 300,
"Page" : 14,
"DC" : "100"
}
]
}
有了上述架构,您可以使用$unset
轻松删除DC字段聚合运算符。
db.crs.aggregate([{$unset: 'Crs.DC'}]);
关于arrays - 如何使用 MongoDB 上的聚合从数组中删除字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48623792/