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

skub ny værdi til mongodb indre array - mongodb/php

Da ingen af ​​disse svar faktisk fortæller dig, hvad der er galt her ...

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

Der er et problem med din $push sætning, du trykker ikke "done_by" med en værdi på "2", du sender faktisk "done_by" og "2" ...

Her er problemet ...

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

Dette skal have en => ikke en ,

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

Bemærk dog, at hver gang du kører dette, vil det indsætte en anden "2", hvis du ønsker, at MongoDB kun skal indsætte "2", hvis den ikke allerede findes i "done_by", så skal du bruge $addToSet ...

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

Denne erklæring tilføjer ikke 2 hver gang, kun første gang.



  1. MongoDB $ trække fra

  2. Hvad er fordelen ved Redis clustering på forskellige værter?

  3. Redis og forespørgselsværdier

  4. Mongoose password hashing