Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/40.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
Node.js I';我想更新mongodb中嵌套数组中的字段_Node.js_Mongodb - Fatal编程技术网

Node.js I';我想更新mongodb中嵌套数组中的字段

Node.js I';我想更新mongodb中嵌套数组中的字段,node.js,mongodb,Node.js,Mongodb,这是我的文件: { "_id": { "$oid": "5eb5f0a9d985888edb0523b0" }, "subs": [{ "name": "list1", "count": "0" }, { "name": "list2", "count": "0" }, { "name": "list3", "count": "0" }, { "name": "list4", "count": "0" }] } 我目前正在

这是我的文件:

{
"_id": {
    "$oid": "5eb5f0a9d985888edb0523b0"
},
"subs": [{
    "name": "list1",
    "count": "0"
}, {
    "name": "list2",
    "count": "0"
}, {
    "name": "list3",
    "count": "0"
}, {
    "name": "list4",
    "count": "0"
}]
}
我目前正在使用mongojs。例如,我希望能够找到“list2”并增加与之相关的计数。我已经试了一整天了,但似乎还没弄明白


任何帮助或指导都将不胜感激

我希望这会对你有所帮助。我已经使用编程方法来解决您的问题

let payload = {
"_id": {
    "$oid": "5eb5f0a9d985888edb0523b0"
},
"subs": [{
    "name": "list1",
    "count": "0"
}, {
    "name": "list2",
    "count": "0"
}, {
    "name": "list3",
    "count": "0"
}, {
    "name": "list4",
    "count": "0"
}]
}

let fields = ["list2","list4"];

fields.forEach((element)=>{
    for(let i=0; i<payload.subs.length; i++){
         if(element===payload.subs[i]["name"]){
            let value = parseInt(payload.subs[i]["count"]);
            payload.subs[i]["count"] = (++value).toString();
         }
    }
})

console.log(payload.subs)
let有效载荷={
“_id”:{
$oid:“5eb5f0a9d985888edb0523b0”
},
“潜艇”:[{
“名称”:“列表1”,
“计数”:“0”
}, {
“名称”:“列表2”,
“计数”:“0”
}, {
“名称”:“列表3”,
“计数”:“0”
}, {
“名称”:“列表4”,
“计数”:“0”
}]
}
让字段=[“列表2”,“列表4”];
fields.forEach((元素)=>{

对于(让i=0;i我希望这将对您有所帮助。我已经使用编程方法来解决您的问题

let payload = {
"_id": {
    "$oid": "5eb5f0a9d985888edb0523b0"
},
"subs": [{
    "name": "list1",
    "count": "0"
}, {
    "name": "list2",
    "count": "0"
}, {
    "name": "list3",
    "count": "0"
}, {
    "name": "list4",
    "count": "0"
}]
}

let fields = ["list2","list4"];

fields.forEach((element)=>{
    for(let i=0; i<payload.subs.length; i++){
         if(element===payload.subs[i]["name"]){
            let value = parseInt(payload.subs[i]["count"]);
            payload.subs[i]["count"] = (++value).toString();
         }
    }
})

console.log(payload.subs)
let有效载荷={
“_id”:{
$oid:“5eb5f0a9d985888edb0523b0”
},
“潜艇”:[{
“名称”:“列表1”,
“计数”:“0”
}, {
“名称”:“列表2”,
“计数”:“0”
}, {
“名称”:“列表3”,
“计数”:“0”
}, {
“名称”:“列表4”,
“计数”:“0”
}]
}
让字段=[“列表2”,“列表4”];
fields.forEach((元素)=>{
for(设i=0;i
答案不是基于mongojs,但下面的语法应该可以帮助您

db.collection.updateOne(({"subs.name":"list2"},{$inc:{"subs.$.count":1}})
确保您的计数是
int32
而不是字符串。
“计数”:0
而不是
“计数”:“0”

答案不是基于mongojs,但下面的语法应该可以帮助您

db.collection.updateOne(({"subs.name":"list2"},{$inc:{"subs.$.count":1}})

确保您的计数不是字符串。
“计数”:0
不是
“计数”:“0”

我想是在使用数组过滤器:-您是在尝试仅使用mongojs提供的函数更新值,还是只需要使用javascript函数更新这些值?您能告诉我们您尝试了什么吗?正如@AravindaMeewalaarachchi指出的,您是想要原始mongodb查询还是想要使用库?我想是在使用数组过滤器ers:-您是只尝试使用mongojs提供的函数更新值,还是只需要使用javascript函数更新这些值?您能告诉我们您尝试了什么吗?正如@AravindaMeewalaarachchi所指出的,您是想要原始mongodb查询还是想要使用库?