我尝试使用以下代码更新MongoDB数据:
db.medicines.update({"_id":"586a048e34e5c12614a7424a"}, {$set: {amount:'3'}})
但不幸的是,查询无法识别选择器"_id":"586a048e34e5c12614a7424a"
,即使它存在。
当我将密钥更改为另一个密钥时,它会被触发:name
,rate
等。
有一种特殊方法可以使用_id
参数进行更新吗?
非常感谢。
答案 0 :(得分:2)
_id
将是mongodb在插入之前为每个文档生成的唯一ObjectId
。查询提示有效,因为_id
是ObjectId
而"586a048e34e5c12614a7424a"
是String
。您需要使用_id
包裹ObjectId()
。
如果您正在使用mongodb查询
db.medicines.update({
"_id": ObjectId("586a048e34e5c12614a7424a")
}, {
$set: {
amount: '3'
}
});
如果您使用mongoose
。您可以使用findByIdAndUpdate
db.medicines.findByIdAndUpdate({
"_id": "586a048e34e5c12614a7424a"
}, {
$set: {
amount: '3'
}
});