sql >> Databáze >  >> NoSQL >> MongoDB

vložit novou hodnotu do vnitřního pole mongodb - mongodb/php

Protože ani jedna z těchto odpovědí vám ve skutečnosti neříká, co je zde špatně ...

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

Vyskytl se problém s vaším $push prohlášení, neposíláte "hotovo_by" s hodnotou "2", ve skutečnosti posíláte "hotovo_by" a "2" ...

Zde je problém ...

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

Toto by mělo mít => ne ,

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

Pamatujte však, že pokaždé, když to spustíte, vloží další "2", pokud chcete, aby MongoDB vložil pouze "2", pokud již neexistuje v "done_by", měli byste použít $addToSet ...

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

Tento příkaz nepřidá 2 pokaždé, ale pouze poprvé.



  1. Klíčové věci ke sledování v MongoDB

  2. Jak se bezpečně připojit k Heroku Redis přes příkazový řádek?

  3. Událost klíčového prostoru Redis se nespouští

  4. 3 jednoduché kroky ke zlepšení zabezpečení vaší instalace MongoDB