これらの答えはどちらも実際にはここで何が悪いのかを教えてくれないので...
$conn = new Mongo();
$q = $conn->server->gameQueue;
$id = new MongoId("4d0b9c7a8b012fe287547157");
$q->update(array("_id"=>$id),array('$push' => array("done_by","2")));
$ pushに問題があります ステートメントでは、実際に「done_by」を送信している値が「2」の「done_by」をプッシュしていませんおよび 「2」...
ここに問題があります...
array('$push' => array("done_by","2"))
これには=>が必要です 、ではありません
array('$push' => array("done_by" => "2"))
ただし、これを実行するたびに、MongoDBに「done_by」にまだ存在しない場合にのみ「2」を挿入する場合は、別の「2」が挿入されることに注意してください。 $ addToSetを使用する必要があります。 ...
array('$addToSet' => array("done_by" => "2"))
このステートメントは、毎回2を追加するのではなく、初めてのみ追加します。