Karena tidak satu pun dari jawaban ini yang benar-benar memberi tahu Anda apa yang salah di sini ...
$conn = new Mongo();
$q = $conn->server->gameQueue;
$id = new MongoId("4d0b9c7a8b012fe287547157");
$q->update(array("_id"=>$id),array('$push' => array("done_by","2")));
Ada masalah dengan $push . Anda pernyataan, Anda tidak mendorong "done_by" dengan nilai "2" Anda sebenarnya mengirim "done_by" dan "2" ...
Inilah masalahnya ...
array('$push' => array("done_by","2"))
Ini harus memiliki => bukan ,
array('$push' => array("done_by" => "2"))
Namun, perhatikan bahwa setiap kali Anda menjalankan ini, itu akan menyisipkan "2" lain jika Anda ingin MongoDB hanya memasukkan "2" jika belum ada di "done_by" maka Anda harus menggunakan $addToSet ...
array('$addToSet' => array("done_by" => "2"))
Pernyataan ini tidak akan bertambah 2 setiap kali, hanya pertama kali.