3

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

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

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

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

4

1 回答 1

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

于 2012-08-06T22:38:56.960 回答