MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

invia il nuovo valore all'array interno di mongodb - mongodb/php

Dal momento che nessuna di queste risposte ti sta effettivamente dicendo cosa c'è che non va qui ...

$conn = new Mongo();
$q = $conn->server->gameQueue;
$id = new MongoId("4d0b9c7a8b012fe287547157");
$q->update(array("_id"=>$id),array('$push' => array("done_by","2")));

Si è verificato un problema con il tuo $push istruzione, non stai spingendo "done_by" con un valore di "2" stai effettivamente inviando "done_by" e "2" ...

Ecco il problema...

array('$push' => array("done_by","2"))

Questo dovrebbe avere un => non un ,

array('$push' => array("done_by" => "2"))

Tuttavia, tieni presente che ogni volta che esegui questo inserirà un altro "2" se vuoi che MongoDB inserisca solo "2" se non esiste già in "done_by", allora dovresti usare $addToSet ...

array('$addToSet' => array("done_by" => "2"))

Questa affermazione non aggiungerà 2 ogni volta, solo la prima volta.