如何更新文档而不覆盖现有文档?

shu*_*shu 4 mongodb

我正在研究如何使用 mongoDB。

我想更新文档的某个字段,但它会覆盖整个文档。如何只更新文档中我想要修改的字段?

db.products.find({_id: 1})

{
    "_id" : 1.0,
    "name" : "aaa",
    "category" : "toy",
    "price" : 100.0
}
Run Code Online (Sandbox Code Playgroud)

例如,我有一个这样的文档。

db.products.update({_id: 1}, {price:999})

db.products.find({_id: 1})

{
    "_id" : 1.0,
    "price" : 999.0
}
Run Code Online (Sandbox Code Playgroud)

当我像这样更新时,我得到这个结果。执行更新命令后,我丢失了名称字段和类别字段。

Arn*_*las 8

使用运算符$set

$ db.products.update({_id: 1}, {$set: {price:999}})
Run Code Online (Sandbox Code Playgroud)

该运算符允许您更新指定的字段。