Aangezien geen van deze antwoorden je echt vertelt wat er mis is hier ...
$conn = new Mongo();
$q = $conn->server->gameQueue;
$id = new MongoId("4d0b9c7a8b012fe287547157");
$q->update(array("_id"=>$id),array('$push' => array("done_by","2")));
Er is een probleem met uw $push statement, je pusht niet "done_by" met een waarde van "2", je stuurt eigenlijk "done_by" en "2" ...
Hier is het probleem ...
array('$push' => array("done_by","2"))
Dit moet een => . hebben geen ,
array('$push' => array("done_by" => "2"))
Houd er echter rekening mee dat elke keer dat u dit uitvoert, er nog een "2" wordt ingevoegd als u wilt dat MongoDB alleen "2" invoegt als het nog niet bestaat in "done_by", dan moet u $addToSet gebruiken ...
array('$addToSet' => array("done_by" => "2"))
Deze verklaring voegt niet elke keer 2 toe, alleen de eerste keer.