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

Dodaj nowe pole do każdego dokumentu w kolekcji MongoDB

To samo, co aktualizowane pole istniejącej kolekcji, $set doda nowe pola, jeśli określone pole nie istnieje.

Sprawdź ten przykład:

> db.foo.find()
> db.foo.insert({"test":"a"})
> db.foo.find()
{ "_id" : ObjectId("4e93037bbf6f1dd3a0a9541a"), "test" : "a" }
> item = db.foo.findOne()
{ "_id" : ObjectId("4e93037bbf6f1dd3a0a9541a"), "test" : "a" }
> db.foo.update({"_id" :ObjectId("4e93037bbf6f1dd3a0a9541a") },{$set : {"new_field":1}})
> db.foo.find()
{ "_id" : ObjectId("4e93037bbf6f1dd3a0a9541a"), "new_field" : 1, "test" : "a" }

EDYTUJ:

Jeśli chcesz dodać nowe_pole do całej swojej kolekcji, musisz użyć pustego selektora i ustawić flagę multi na true (ostatni parametr), aby zaktualizować wszystkie dokumenty

db.your_collection.update(
  {},
  { $set: {"new_field": 1} },
  false,
  true
)

EDYTUJ:

W powyższym przykładzie ostatnie 2 pola false, true określa upsert i multi flagi.

Do góry: Jeśli ustawiono na true, tworzy nowy dokument, gdy żaden dokument nie spełnia kryteriów zapytania.

Wiele: Jeśli ustawione na true, aktualizuje wiele dokumentów spełniających kryteria zapytania. Jeśli ustawione na false, aktualizuje jeden dokument.

To jest dla versions Mongo przed 2.2 . W przypadku najnowszych wersji zapytanie jest nieco zmienione

db.your_collection.update({},
                          {$set : {"new_field":1}},
                          {upsert:false,
                          multi:true}) 


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Mongo DB znajdź według nazwy pola z dowolną wartością

  2. Błąd:brak obsługi gniazd unix w systemie Windows łączącym mongodb

  3. Uzyskaj podzbiór tablicy w mongodb za pomocą źródła tablicy

  4. Jak formatować liczby za pomocą przecinków w SQL?

  5. mongo - problem z połączeniem rubin