MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

натиснете нова стойност към вътрешния масив на mongodb - mongodb/php

Тъй като нито един от тези отговори всъщност не ви казва какво не е наред...

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

Има проблем с вашия $push изявление, вие не натискате "done_by" със стойност "2", вие всъщност изпращате "done_by" и "2" ...

Ето проблема...

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

Това трябва да има => не е ,

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

Обърнете внимание обаче, че всеки път, когато стартирате това, той ще вмъкне още едно "2", ако искате MongoDB да вмъкне само "2", ако вече не съществува в "done_by", тогава трябва да използвате $addToSet ...

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

Това изявление няма да добавя 2 всеки път, а само първия път.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Изберете вложени полета в mongo db

  2. Преобразуване на речник<string, object>-to-BsonDocument, пропускайки полето _t

  3. Поддръжка на транзакции в MongoDB

  4. Mongo намира дубликати за записи за две или повече полета

  5. MongoParseError:опциите useCreateIndex, useFindAndModify не се поддържат