MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

pousser la nouvelle valeur dans le tableau interne mongodb - mongodb/php

Puisqu'aucune de ces réponses ne vous dit réellement ce qui ne va pas ici...

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

Il y a un problème avec votre $push déclaration, vous ne poussez pas "done_by" avec une valeur de "2", vous envoyez en fait "done_by" et "2" ...

Voici le problème...

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

Cela devrait avoir un => pas un ,

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

Cependant, notez que chaque fois que vous l'exécutez, il insérera un autre "2" si vous voulez que MongoDB n'insère "2" que s'il n'existe pas déjà dans "done_by", alors vous devez utiliser $addToSet ...

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

Cette instruction n'ajoutera pas 2 à chaque fois, seulement la première fois.