Protože ani jedna z těchto odpovědí vám ve skutečnosti neříká, co je zde špatně ...
$conn = new Mongo();
$q = $conn->server->gameQueue;
$id = new MongoId("4d0b9c7a8b012fe287547157");
$q->update(array("_id"=>$id),array('$push' => array("done_by","2")));
Vyskytl se problém s vaším $push prohlášení, neposíláte "hotovo_by" s hodnotou "2", ve skutečnosti posíláte "hotovo_by" a "2" ...
Zde je problém ...
array('$push' => array("done_by","2"))
Toto by mělo mít => ne ,
array('$push' => array("done_by" => "2"))
Pamatujte však, že pokaždé, když to spustíte, vloží další "2", pokud chcete, aby MongoDB vložil pouze "2", pokud již neexistuje v "done_by", měli byste použít $addToSet ...
array('$addToSet' => array("done_by" => "2"))
Tento příkaz nepřidá 2 pokaždé, ale pouze poprvé.