arrays - 如何使用 MongoDB 上的聚合从数组中删除字段?

标签 arrays mongodb aggregation-framework

    {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/

相关文章:

java - 从 MongoDB 整理中获取不需要的输出

javascript - 将文档中的嵌套对象与可能匹配的数组进行匹配

c - 动态指针数组

javascript - JavaScript 中数组的错误是什么?

mongodb - 以 Compose.io 作为副本集的本地 mongodb?

mongodb - Mongodb中的保存和插入有什么区别?

java - MongoDb如何在java驱动3.4版本中写聚合查询

javascript - Backbone/Marionette - 检查模型是否存在

android - 统计整数数组值Android

ruby - unicorn 服务器 mongodb 和 sinatra