Da Ihnen keine dieser Antworten wirklich sagt, was hier falsch ist ...
$conn = new Mongo();
$q = $conn->server->gameQueue;
$id = new MongoId("4d0b9c7a8b012fe287547157");
$q->update(array("_id"=>$id),array('$push' => array("done_by","2")));
Es gibt ein Problem mit Ihrem $push Anweisung pushen Sie "done_by" nicht mit einem Wert von "2", Sie senden tatsächlich "done_by" and "2" ...
Hier ist das Problem ...
array('$push' => array("done_by","2"))
Dies sollte ein => haben kein ,
array('$push' => array("done_by" => "2"))
Beachten Sie jedoch, dass jedes Mal, wenn Sie dies ausführen, eine weitere "2" eingefügt wird, wenn Sie möchten, dass MongoDB nur "2" einfügt, wenn sie nicht bereits in "done_by" vorhanden ist, dann sollten Sie $addToSet verwenden ...
array('$addToSet' => array("done_by" => "2"))
Diese Anweisung addiert nicht jedes Mal 2, nur beim ersten Mal.