चूँकि इनमें से कोई भी उत्तर वास्तव में आपको यह नहीं बता रहा है कि यहाँ क्या गलत है ...
$conn = new Mongo();
$q = $conn->server->gameQueue;
$id = new MongoId("4d0b9c7a8b012fe287547157");
$q->update(array("_id"=>$id),array('$push' => array("done_by","2")));
आपके $पुश . में कोई समस्या है कथन, आप "don_by" को "2" के मान के साथ आगे नहीं बढ़ा रहे हैं जिसे आप वास्तव में "done_by" और भेज रहे हैं "2" ...
ये रहा मुद्दा...
array('$push' => array("done_by","2"))
इसमें => . होना चाहिए नहीं एक ,
array('$push' => array("done_by" => "2"))
हालांकि, ध्यान दें कि हर बार जब आप इसे चलाते हैं तो यह एक और "2" डालेगा यदि आप चाहते हैं कि MongoDB केवल "2" को इनसेट करे यदि यह पहले से "don_by" में मौजूद नहीं है तो आपको $addToSet का उपयोग करना चाहिए ...
array('$addToSet' => array("done_by" => "2"))
यह कथन हर बार 2 बार नहीं जोड़ेगा, केवल पहली बार।