Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
mongodb更新子文档中的多个密钥_Mongodb - Fatal编程技术网

mongodb更新子文档中的多个密钥

mongodb更新子文档中的多个密钥,mongodb,Mongodb,是否有一种方法可以一次更新子文档中的多个键(在给定的子文档id中),而不是像这样编写查询: articles.updateOne( { _id: 123, 'data._id': 5, }, { $set: { 'data.$.comments': 10, 'data.$.visible': true, }, }, ); 样本文件: { &qu

是否有一种方法可以一次更新子文档中的多个键(在给定的子文档id中),而不是像这样编写查询:

articles.updateOne(
    {
        _id: 123,
        'data._id': 5,
    },
    {
        $set: {
            'data.$.comments': 10,
            'data.$.visible': true,
        },
    },
);
样本文件:

{
    "_id" : 123,
    "data" : [ 
        {
            "_id" : 5
            "comments" : 8,
            "visible" : false,
            "status" : null,
        }
    ]
}
我正在寻找这样的解决方案:

        $set: {
            'data.$': { visible: true, comments: 10 },
        },

。。。换言之:它是否能够提交一个具有几个键的对象,以仅更新对象内的给定键,而保持现有键不变?像MySQL<代码>更新*。。。设置foo='bar',test='hello',…

否,当您分配对象时,它将替换完整对象,这是您在第一次查询中使用的唯一方法。