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 operatorを使用する必要があります。

于 2013-04-18T20:43:33.050 に答える