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

Mongodb/Mongoid - hvad betyder {:multi => sand}

Dokumentationen for MongoDB-opdateringsmetoden står følgende:

Så dybest set multi parameter er det, der aktiverer update_all adfærd i det spørgsmål, du linkede til.

Som svar på dit andet spørgsmål:ja - Mongoid har denne funktion indbygget nu. Dokumentationsreferencen er her . Men du kan bruge det sådan her:

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

Opdater

I det tilfælde, hvor du vil skubbe en værdi ind i et matrixfelt, skal du stadig bruge MongoDB-biblioteket direkte, da Mongoid update_all metoden understøtter kun $set databaseopdateringsmetode (som kan bruges til at opdatere et helt array, men ikke skubbe værdier ind på det).

Eksemplet i svaret på det spørgsmål, du linkede til, ville fungere, jeg har kopieret det nedenfor dem, der falder over dette spørgsmål (tak shingara !):

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


  1. Hvordan kan jeg se, om der er flere resultater fra en forespørgsel i MongoDB?

  2. mongoDB-forespørgsel, der bruger aggregat til at forespørge på den seneste dato for et element

  3. Kører PDI Kettle på Java - Mongodb Step Missing Plugins

  4. MongoDB Kafka Sink Connector behandler ikke RenameByRegex-processoren