如果我有一个包含两个值的文档:
{
"name" : "Bob",
"location" "France"
}
然后将数组传递给包含“name”,“country”的文档。如何在删除“位置”的情况下确保更新整个文档?
我不会意识到这两个文件之间的差异,所以我无法取消设置特定字段。我正在寻找一种方法来简单地用提供的数组替换文档数据。
答案 0 :(得分:6)
如果您向update
提供包含所需记录的新文档,则会替换该文档。
例如:
db.so.insert({"name":"Bob", "location": "France"})
db.so.update({"name":"Bob", "location": "France"}, {"name":"Roberto", "country":"Italy"})
db.so.find()
{ "_id" : ObjectId(), "name" : "Roberto", "country" : "Italy" }
当然,如果您拥有文档的_id
,这将是指定更新的更好方式(而不是像上面那样传回刚刚插入的文档)