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

Mongodb/Mongoid - co oznacza {:multi => true}

Dokumentacja metody aktualizacji MongoDB stwierdza co następuje:

Więc w zasadzie multi parametr jest tym, co włącza update_all zachowanie w pytaniu, z którym się łączysz.

W odpowiedzi na twoje drugie pytanie:tak - Mongoid ma teraz wbudowaną tę funkcję. Odniesienie do dokumentacji znajduje się tutaj . Ale możesz go użyć w ten sposób:

User.where(:gender => "Male").update_all(:title => "Mr")

Aktualizacja

W przypadku, gdy chcesz wypchnąć wartość do pola tablicy, nadal będziesz musiał użyć biblioteki MongoDB bezpośrednio, ponieważ Mongoid update_all metoda obsługuje tylko $set metoda aktualizacji bazy danych (która może być użyta do aktualizacji całej tablicy, ale nie do wypychania na nią wartości).

Przykład w odpowiedzi na pytanie, do którego się połączyłeś, zadziała. Skopiowałem go poniżej tych, którzy natknęli się na to pytanie (dzięki szingara !):

User.collection.update( 
  {'$in' => {:gender => 'Male'}}, 
  {'$push' => {:titles => 'Mr'}},
  {:multi => true}
)


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Wyszukiwanie dat i ignorowanie czasu w mongoDB

  2. PHP:Czy serializowanie obiektów i umieszczanie ich w bazie danych na później jest złym projektem?

  3. $filtruj do 2 zagnieżdżonych poziomów w mongodb

  4. Importuj plik CSV za pomocą schematu Mongoose

  5. Usuń wszystkie pola, które są puste