MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Mongodb/Mongoid - cosa significa {:multi => true}

La documentazione per il metodo di aggiornamento MongoDB afferma quanto segue:

Quindi fondamentalmente il multi parametro è ciò che abilita update_all comportamento nella domanda a cui ti sei collegato.

In risposta alla tua seconda domanda:sì - Mongoid ha questa funzionalità integrata ora. Il riferimento alla documentazione è qui . Ma puoi usarlo in questo modo:

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

Aggiorna

Nel caso in cui desideri inserire un valore in un campo array, dovrai comunque utilizzare direttamente la libreria MongoDB, poiché Mongoid update_all il metodo supporta solo il $set metodo di aggiornamento del database (che può essere utilizzato per aggiornare un intero array, ma non per inserire valori su di esso).

L'esempio nella risposta alla domanda a cui ti sei collegato funzionerebbe, l'ho copiato sotto coloro che si imbattono in questa domanda (grazie shingara !):

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