sql >> Databáze >  >> NoSQL >> MongoDB

nastavení hodnot mongoidních hashových polí

Věc s hashovým polem je, že může být dynamické, jak chcete. Proto je tato funkce ve výchozím nastavení zakázána, aby se zabránilo znečištění vašeho schématu DB nechtěnými poli způsobenými chybami ve vašem kódu.

Ne, s používáním dvoufázových aktualizací pro vaše hashe vůbec nezůstáváte!

[],[]=jsou zkratky pro read_attribute() a write_attribute() a měl by být použit, pokud nezahrnujete Mongoid::Attributes::Dynamic . Pokud se pokusíte použít $set bez povolení dynamických atributů dostanete chybu bez metody, protože vaše dynamické atributy nevidí jako definované atributy.

Pokud si přečtete zdroj Mongoid::Atributy::Dynamický pak byste zjistili, že je to nutné pro přidání funkce dynamických atributů.

Chcete-li aktualizovat hodnoty zahrnutím Mongoid::Attributes::Dynamic musíte postupovat podle těchto kroků:

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

V opačném případě, pokud potřebujete, můžete toto snadno přeskočit a provést aktualizaci hodnoty metodou ve dvou krocích

Doufám, že to trochu osvětlí váš dotaz.

Zdroj:

Mongoidní dynamická pole kolejnic – žádná chyba metody

Dynamické atributy s Rails a Mongoid



  1. Průměr pole dílčího dokumentu napříč dokumenty v Mongo

  2. Vyplňte konkrétní pole v $lookup

  3. Spusťte MongoTemplate.aggregate bez načítání řádků

  4. jak provést dotaz pouze pro čtení na sdílené replikě nastavené v mongodb