2

我正在使用来自 PHP 脚本的表单数据更新我的 MongoDB 数据库,它可以将可变数量的元素更新到 MongoDB 中。出于测试目的,我尝试了..

$update = '"continent"=>"Asia"'; // one element to be updated, would be multiple eventually

$tracking->sessions->update(array("ts"=>$timestamp,"fb_id"=>$fb_id),array($update));

当我这样做时,我没有收到任何错误,但是数据库中的数据没有更新,记录实际上被替换为这个:

{ "_id" : ObjectId("517048f87a088a7e65000003"), "0" : "'continent'=>'Asia'" }

原始记录:

{ "_id" : ObjectId("517048f87a088a7e65000003"), "fb_id" : "123456", "ts" : "1366316915", "continent" : "North America", "city" : "New York" }

不知道我做错了什么。我该如何解决?

4

1 回答 1

8

这是因为您告诉它将匹配的文档更新为传入的文档。

如果您只打算设置特定字段,则需要使用 $set 运算符

于 2013-04-18T20:43:33.050 回答