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

Dynamické atributy s Rails a Mongoid

Mongoid nyní podporuje dynamická pole. Jejich dokumentaci lze nalézt zde:http://mongoid.org/en/mongoid/docs/documents.html#dynamic_fields

V zásadě vás varuje, že musíte být trochu opatrní při nastavování dynamických polí, protože to způsobí chybu bez metody, pokud se pokusíte použít metody getter a setter pro pole, které v dokumentu neexistovalo.

[],[]=jsou zkratky pro read_attribute(),write_attribute() a měly by být použity, pokud nenastavíte dynamic_attributes = true ve vašem ./config/mongoid.yml file , jinak se zobrazí chyba bez metody.

Nastavení allow_dynamic_fields: true může být riskantní, protože byste mohli znečistit svá data/schéma nechtěnými poli způsobenými chybami ve vašem kódu. Pravděpodobně je bezpečnější nastavit toto na false a explicitně použijte [],[]=

# Raise a NoMethodError if value isn't set.
person.gender
person.gender = "Male"

# Retrieve a dynamic field safely.
person[:gender]
person.read_attribute(:gender)

# Write a dynamic field safely.
person[:gender] = "Male"
person.write_attribute(:gender, "Male")


  1. Meteor - collection.find() vždy vrátí všechna pole

  2. Proč lua skript blokuje redis-server?

  3. MongoDB:Závažná chyba:Třída 'MongoClient' nebyla nalezena

  4. Jak obejít nedostatek transakcí v MongoDB?