Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.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
Arrays MongoDB-在嵌套数组中更新对象中的多个字段_Arrays_Node.js_Mongodb - Fatal编程技术网

Arrays MongoDB-在嵌套数组中更新对象中的多个字段

Arrays MongoDB-在嵌套数组中更新对象中的多个字段,arrays,node.js,mongodb,Arrays,Node.js,Mongodb,我试图更新收入数组中的月份和年份字段,但我使用的命令正在用数组中的对象替换更新的对象值。 请注意,更新的对象的键/值比原始对象的键/值少 { "_id" : 12j3k123132, "username" : "Alex", "password" : "12345", "email" : "a@ass", "incomes" : [ { "incomeId" : aisjdoaijfa, "month" : 10, "year" : 201

我试图更新收入数组中的月份和年份字段,但我使用的命令正在用数组中的对象替换更新的对象值。 请注意,更新的对象的键/值比原始对象的键/值少

{
"_id" : 12j3k123132,
"username" : "Alex",
"password" : "12345",
"email" : "a@ass",
"incomes" : [
    {
        "incomeId" : aisjdoaijfa,
        "month" : 10,
        "year" : 2017,
        "value" : 100.57,
        "description" : "car wash"
    }
],
"expenses" : [ ]
}

我正在运行follow命令,其中updateInfo包含将被更新的所有信息

incomeSearch.update({ _id: 12j3k123132), "incomes.incomeId": incomeId.incomeId }, {$set: {"incomes.$": updateInfo}}, (err, updateResult) => {

    if (err){
        res.status(500).send({error: `An error occurred. ${err}`});
    }
    res.status(200).send({msg: `Income updated`, result: updateResult});

});

然后只更新匹配的
“月”
“年”
字段<代码>{“$set”:{“收入.美元.月”:11,“收入.美元.年”:2016}。只要您指定每个属性的“完整路径”,那么这些是唯一实际更新的内容。但我可能只想更新月、月、年和描述。。。。我该怎么做?这就是我给你看的。实际上,阅读它并注意到与您所做的不同。因此,您和mongodb都在说,如果不指定“完整路径”,我不能仅更新数组中对象的某些字段保持不变吗?@NeilLunn检查此链接:mongo不可能这样做,他们在MongoDB上打开了一张有此问题的票据。然后只更新匹配的
“月”
“年”
字段<代码>{“$set”:{“收入.美元.月”:11,“收入.美元.年”:2016}。只要您指定每个属性的“完整路径”,那么这些是唯一实际更新的内容。但我可能只想更新月、月、年和描述。。。。我该怎么做?这就是我给你看的。实际上,阅读它并注意到与您所做的不同。因此,您和mongodb都在说,如果不指定“完整路径”,我不能仅更新数组中对象的某些字段保持不变吗?@NeilLunn检查一下这个链接:mongo是不可能做到的,他们在MongoDB上开了一张关于这个问题的票。