sql >> Database >  >> NoSQL >> MongoDB

mongoïde hash-veldwaarden instellen

Het ding met het hash-veld is dat het zo dynamisch kan zijn als je wilt. Om te voorkomen dat uw DB-schema vervuilt met onbedoelde velden veroorzaakt door bugs in uw code, is deze functionaliteit standaard uitgeschakeld.

Nee, je zit helemaal niet vast aan het gebruik van 2-staps updates voor je hashes!

[],[]=zijn de sneltoetsen voor read_attribute() en write_attribute() en moet worden gebruikt als u Mongoid::Attributes::Dynamic niet opneemt . Als je $set . probeert te gebruiken zonder dynamische attributen in te schakelen, krijg je een no-method-fout omdat het je dynamische attributen niet als gedefinieerde attributen ziet.

Als je de bron leest van Mongoid::Kenmerken::Dynamisch dan zou je merken dat dit nodig is om de functionaliteit voor dynamische attributen toe te voegen.

Om de waarden bij te werken door Mongoid::Attributes::Dynamic . op te nemen je moet deze stappen volgen:

thing = Thing.first
thing.set("info.endDate" => Time.now)
thing.reload # This will update the current variable 

Anders kunt u dit eenvoudig overslaan als u dit nodig heeft en de waarde-update uitvoeren via de 2-stappenmethode

Ik hoop dat dit enig licht werpt op uw vraag.

Bron:

Rails mongoïde dynamische velden - geen methodefout

Dynamische attributen met rails en mongoid



  1. MongoDB Compass Filter expressie naar Go bson.M expressie

  2. Mongo-equivalent van SQL's SELECT DISTINCT?

  3. Mongodb upsert gooien DuplicateKeyException

  4. Probleem met installatie van Mongo DB op Windows 8.1