我想将变量传递给查询,但我不知道如何:
db.collection('users').update(
{ "_id":ObjectID(req.params.id)},
{ $set: { tasks[req.params.pos].done : true }}
,(error,resultat)=>{
if (resultat){
console.log("mise a jour avec succes ");
res.send({message:"mise a jour avec succes "});
} else {
console.log("Erreur lors du mise a jour ");
res.send({message:"Erreur lors du mise a jour "});
}
});
这是 mongodob 文档,我想更改已完成的字段,但使用变量的索引,例如:var x = 5“task[x].done = true”
{
"_id" : ObjectId("5a730e55114dbc2a0455c630"),
"email" : "unknown@gmail.com",
"password" : "unknown",
"tasks" : [
{
"title" : "new 5",
"description" : "dod ododoododododo",
"date" : "2018-02-07T18:25:14.881Z",
"done" : false
},
{
"title" : "new2",
"description" : "dod ododoododododo",
"date" : "2018-02-07T18:25:14.881Z",
"done" : false
}
]
}
最佳答案
来自Mongo docs您需要使用位置 $
运算符
db.collection('users')
.update({'tasks.title': 'new2'},
{'$set': {'tasks.$.done': false}},
(error,resultat)=>{...
关于arrays - 如何在node js中的mongodb查询中传递var,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48731615/