MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

wepchnij nową wartość do wewnętrznej tablicy mongodb - mongodb/php

Ponieważ żadna z tych odpowiedzi w rzeczywistości nie mówi, co jest tutaj nie tak...

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

Wystąpił problem z Twoim $push oświadczenie, nie naciskasz „done_by” z wartością „2”, w rzeczywistości wysyłasz „done_by” i "2" ...

Oto problem ...

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

To powinno mieć => nie ,

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

Należy jednak pamiętać, że za każdym razem, gdy to uruchomisz, wstawi kolejną „2”, jeśli chcesz, aby MongoDB wstawił tylko „2”, jeśli nie istnieje jeszcze w „done_by”, powinieneś użyć $addToSet ...

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

To stwierdzenie nie doda 2 za każdym razem, tylko za pierwszym razem.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB/PyMongo:Odpytywanie wielu kryteriów - nieoczekiwane wyniki

  2. MongoDB $inc

  3. Jak wdrożyć bazę danych Open edX MongoDB w celu zapewnienia wysokiej dostępności?

  4. Jak usunąć numery N dokumentów w mongodb

  5. Słaba wydajność agregacji wyszukiwania