arrays - 如何在node js中的mongodb查询中传递var

标签 arrays node.js mongodb

我想将变量传递给查询,但我不知道如何:

 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/

相关文章:

c - 为什么我收到警告 excess initializers are ignored?

java - 结合多个字符串数组android

node.js - 使用哪个 IDE 在 Raspberry Pi 上开发 NodeJS 应用程序?

javascript - 无法通过 SSH 连接到 MySQL

node.js - 避免在 PUT 中使用 Mongo 和 Express 进行额外查询

javascript - 未捕获的类型错误 : Cannot set property 'innerHTML' of null

PHP - 多个时差计算

node.js - 新的遗迹浏览器index.html

node.js - MongoDB。通过一次查询获取每种产品不同时间段的价格

python - 为桌面环境分发 Docker 容器应用程序