sql >> Databasteknik >  >> NoSQL >> MongoDB

ställa in mongoida hashfältvärden

Grejen med Hash-fältet är att det kan vara dynamiskt hur mycket du vill. För att förhindra att ditt DB-schema förorenas med oavsiktliga fält orsakade av buggar i din kod är denna funktionalitet inaktiverad som standard.

Nej, du har inte fastnat med att använda tvåstegsuppdateringar för dina hash alls!

[],[]=är genvägarna för read_attribute() och write_attribute() och bör användas om du inte inkluderar Mongoid::Attributes::Dynamic . Om du försöker använda $set utan att aktivera dynamiska attribut kommer du att få ett fel utan metod eftersom det inte ser dina dynamiska attribut som definierade attribut.

Om du vill läsa källan till Mongoid::Attribut::Dynamiskt då skulle du upptäcka att detta krävs för att lägga till funktionen för dynamiska attribut.

För att uppdatera värdena genom att inkludera Mongoid::Attributes::Dynamic du måste följa dessa steg:

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

Annars om du behöver kan du enkelt hoppa över detta och göra värdeuppdateringen med tvåstegsmetoden

Jag hoppas att detta kastar lite ljus över din fråga.

Källa:

Rails-mongoida dynamiska fält – inget metodfel

Dynamiska attribut med Rails och Mongoid



  1. Hur kör man runCommand med Mongoose?

  2. MongoDB:fråga Array för "true" värde vid index n

  3. Grails - Anslut till en MongoDB-databas med autentisering

  4. Hur man utför grundläggande frågeoperationer i MongoDB