如何更新元素数组mongodb

时间:2018-02-13 06:29:56

标签: mongodb

我有一个例子:

my $queue = join(":", $ip, $port, $$, $uid);

如果我使用新数据更新。

"_id" : ObjectId("5694ba11b3957b7ff69c4547"),
"name" : "Okas 1",
"job" : {
    "name" : "job try1",
    "_id" : ObjectId("5a6ff9f7a336e3bba40a1d5c")
},
"categories" : {
    "ss" : [ 
        {
            "name" : "10",
            "_id" : ObjectId("5a6ff9f7a336e3bba40a1d5c")
        }, 
        {
            "name" : "50",
            "_id" : ObjectId("5a6ff9f7a336e3bba40a1d5f")
        }
    ]
}

我应该得到数据

[{
   "name" : "800",
   "_id" : ObjectId("5a6ff9f7a336e3bba40a1d5a")
},
{
   "name" : "8",
   "_id" : ObjectId("5a6ff9f7a336e3bba40a1d5f")
}]
  

所以我想更新数据是否只是更新值,但如果不存在   将新元素添加到数组类别中。我尝试但不工作。该   结果不合适

1 个答案:

答案 0 :(得分:-1)

您可以这样做:

model.findOne({_id:req.params.id}, (err, data) => {
  if (err) throw err;
  if(!data) {
      var newData = new model({
        name: req.body.name
        .....
  })
      newData.save((err, newdata) => {
         // Response
       })
  } else {
      data.name = req.body.name
     data.save((err, data) => {
         // Response
       })
  }
  
 

我希望这就是你想要的。