【问题标题】:how to update fields of a nested object in mongodb? [duplicate]如何更新 mongodb 中嵌套对象的字段? [复制]
【发布时间】:2014-06-01 08:54:12
【问题描述】:

Salam(意思是你好):)

我正在使用node-mongodb-native 驱动程序,我需要更新存储在数组中的对象的特定字段。这是我的 mongodb 集合中的示例文档:

{
    "fields" : [ 
        {
            "en" : "birthDate",
            "status" : "enable",
            "index" : 10
        },{
            "en" : "email",
            "status" : "enable",
            "index" : 4
        },{
            "en" : "inviterCode",
            "status" : "enable",
            "index" : 2
        }
    ]
}

这是我的新数据:

var newData = [ 
    {
        "en" : "birthDate",
        "status" : "disable",
    },{
        "en" : "email",
        "status" : "disable",
    }
];

如您所见,如果en 字段匹配,则应更新status 字段。我知道以下查询适用于单个更新,但是如何通过单个查询实现多个更新?

collection.update(
    {'fields.en': 'birthDate'}, 
    {$set:{'fields.$.status': 'disable'}}, 
    {w:1, multi: true}, 
    function(error, count){

    }
);

【问题讨论】:

    标签: node.js mongodb


    【解决方案1】:

    很遗憾,无法使用单个更新。在 MongoDB 上有一个 open ticket 用于此。

    现在您需要以编程方式执行此操作(例如,循环遍历数组以查找相关索引)。

    【讨论】:

      猜你喜欢
      • 2021-01-23
      • 1970-01-01
      • 2018-11-07
      • 1970-01-01
      • 1970-01-01
      • 2019-02-13
      • 1970-01-01
      • 2023-01-12
      • 2011-10-17
      相关资源
      最近更新 更多