sql >> Database >  >> NoSQL >> MongoDB

push nieuwe waarde naar mongodb inner array - mongodb/php

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.



  1. Hoe krijg ik waarden van Redis met behulp van sleutels die spaties bevatten?

  2. MongoDB Object.bsonSize()

  3. Hoe kan ik meerdere documenten in mangoest bijwerken?

  4. Kan vergrendelingsbestand niet maken/openen:/data/mongod.lock errno:13 Toestemming geweigerd