このドキュメントがあるとしましょう:
Array
(
[created_at] => 1373767280
[email] => admin@mysite.com
[emailQueries] => Array
(
[21] => 1
)
[last_visit] => 1375033640
)
emailQueries
フィールドを更新するには、次のようにします。
$updateEmailQueries['emailQueries']['22'] = 1;
$collection->update( array('email' => $user['email']), array( '$set' => $updateEmailQueries ) );
更新しますが、常に配列内の既存の項目を置き換えます (つまり、[21] => 1 は [22] => 1 になります)。私の目標は、配列に値を追加し、たとえば次のようにすることです。
[emailQueries] => Array
(
[21] => 1
[22] => 1
)
秒を追加しようとしました'$set'
が、うまくいかないようです。
アップデート:
私は試した:
$updateEmailQueries['emailQueries']['21'] = 1;
$collection->update( array('email' => $user['email']),
array( '$push' => $updateEmailQueries ) );
そして、私は得る
Fatal error: Uncaught exception 'MongoCursorException' with message 'localhost:27017: Cannot apply $push/$pushAll modifier to non-array';