MongoDB更新集合的数据

时间:2017-01-04 23:01:59

标签: mongodb

我尝试使用以下代码更新MongoDB数据: db.medicines.update({"_id":"586a048e34e5c12614a7424a"}, {$set: {amount:'3'}})

但不幸的是,查询无法识别选择器"_id":"586a048e34e5c12614a7424a",即使它存在。 当我将密钥更改为另一个密钥时,它会被触发:namerate等。

有一种特殊方法可以使用_id参数进行更新吗?

非常感谢。

1 个答案:

答案 0 :(得分:2)

_id将是mongodb在插入之前为每个文档生成的唯一ObjectId。查询提示有效,因为_idObjectId"586a048e34e5c12614a7424a"String。您需要使用_id包裹ObjectId()

如果您正在使用mongodb查询

db.medicines.update({
  "_id": ObjectId("586a048e34e5c12614a7424a")
}, {
  $set: {
    amount: '3'
  }
});

如果您使用mongoose。您可以使用findByIdAndUpdate

db.medicines.findByIdAndUpdate({
  "_id": "586a048e34e5c12614a7424a"
}, {
  $set: {
    amount: '3'
  }
});