如何在替换整个文档时更新mongodb文档?

时间:2012-08-06 22:21:40

标签: php mongodb

如果我有一个包含两个值的文档:

{
  "name" : "Bob",
  "location" "France"
}

然后将数组传递给包含“name”,“country”的文档。如何在删除“位置”的情况下确保更新整个文档?

我不会意识到这两个文件之间的差异,所以我无法取消设置特定字段。我正在寻找一种方法来简单地用提供的数组替换文档数据。

1 个答案:

答案 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,这将是指定更新的更好方式(而不是像上面那样传回刚刚插入的文档)