Php MongoDB update()实际上正在替换我代码中的整个记录

Php MongoDB update()实际上正在替换我代码中的整个记录,php,mongodb,Php,Mongodb,我正在使用来自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($

我正在使用来自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" }

不知道我做错了什么。如何修复此问题?

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


如果您只想设置特定字段,则需要设置。

好主意!:)我添加了$set操作符,但是数据库中的数据没有更新。请找到我的更新代码。对不起,我的代码有一个愚蠢的拼写错误。这是我的错!但是MongoDB记录中元素的顺序发生了变化。最后更新的元素首先出现。如何解决这个问题?字段的顺序不能保证-重要吗?是的,因为我正在使用此顺序生成HTML表单。有办法解决吗?