我正在尝试使用PHP和update()函数更新mongo文档。但是,当我这样做时,它用我想要更新的值替换WHOLE文档。我该如何解决这个问题?
我到目前为止编写的代码:http://twaddlr.com/view/73 (向下滚动到“更新”功能。这是我为我的网站写的数据库包装器)
答案 0 :(得分:16)
关键是在更新中使用$set
,例如而不是这个(抱歉在这里使用JavaScript语法,不确定确切的PHP驱动程序语法):
db.my_collection.update({hello: "world"}, {foo: "bar"})
你做了
db.my_collection.update({hello: "world"}, {$set: {foo: "bar"}})
如果您使用$set
,则只会更新您指定的属性,不会替换整个文档。
您可以在文档中详细了解相关内容:http://www.mongodb.org/display/DOCS/Updating#Updating-ModifierOperations
编辑:查看代码,这正是您在addRow
方法中所做的。在update
中做同样的事情。