sql >> Databasteknik >  >> NoSQL >> MongoDB

Dynamiska attribut med Rails och Mongoid

Mongoid stöder nu Dynamic Fields. Deras dokumentation finns här:http://mongoid.org/en/mongoid/docs/documents.html#dynamic_fields

I grund och botten varnar den för att du måste vara lite försiktig med hur du ställer in dynamiska fält eftersom det kommer att ge ett felmeddelande om ingen metod om du försöker använda getter- och setter-metoderna för ett fält som inte fanns i dokumentet.

[],[]=är genvägar för read_attribute(),write_attribute() , och bör användas om du inte anger dynamic_attributes = true i din ./config/mongoid.yml file , annars får du ett felmeddelande om ingen metod.

Ställer in allow_dynamic_fields: true kan vara riskabelt, eftersom du kan förorena din data/schema med oavsiktliga fält som orsakas av buggar i din kod. Det är förmodligen säkrare att ställa in detta på false och använd explicit [],[]=

# 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. Hur kan vi skapa ett autogenererat fält för mongodb med fjäderstövel

  2. Vad är det enklaste sättet att hitta de största föremålen i Redis?

  3. MongoDB:FEL:underordnad process misslyckades, avslutades med felnummer 14

  4. mongodb hur man ändrar standardport