MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Mongodb/Mongoid - que signifie {:multi => true}

La documentation de la Méthode de mise à jour MongoDB indique ce qui suit :

Donc, fondamentalement, le multi paramètre est ce qui active le update_all comportement dans la question à laquelle vous avez lié.

En réponse à votre deuxième question :oui - Mongoid a cette fonctionnalité intégrée maintenant. La référence de la documentation est ici . Mais vous pouvez l'utiliser comme ceci :

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

Mettre à jour

Dans le cas où vous souhaitez pousser une valeur sur un champ de tableau, vous devrez toujours utiliser directement la bibliothèque MongoDB, car le Mongoid update_all la méthode ne prend en charge que le $set méthode de mise à jour de la base de données (qui peut être utilisée pour mettre à jour un tableau entier, mais pas pour y insérer des valeurs).

L'exemple dans la réponse à la question à laquelle vous avez lié fonctionnerait, je l'ai copié ci-dessous ceux qui tombent sur cette question (merci shingara !):

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