MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

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


A documentação do método de atualização do MongoDB afirma o seguinte:

Então, basicamente, o multi parâmetro é o que habilita o update_all comportamento na pergunta que você vinculou.

Em resposta à sua segunda pergunta:sim - o Mongoid tem esse recurso embutido agora. A referência da documentação está aqui . Mas você pode usar assim:
User.where(:gender => "Male").update_all(:title => "Mr")

Atualizar

No caso em que você deseja inserir um valor em um campo de matriz, ainda precisará usar a biblioteca MongoDB diretamente, pois o update_all do Mongoid O método suporta apenas o $set método de atualização do banco de dados (que pode ser usado para atualizar uma matriz inteira, mas não enviar valores para ela).

O exemplo na resposta à pergunta à qual você vinculou funcionaria, copiei-o abaixo daqueles que se deparam com essa pergunta (obrigado shingara !):
User.collection.update( 
  {'$in' => {:gender => 'Male'}}, 
  {'$push' => {:titles => 'Mr'}},
  {:multi => true}
)