MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Динамични атрибути с Rails и Mongoid

Mongoid вече поддържа динамични полета. Тяхната документация може да бъде намерена тук:http://mongoid.org/en/mongoid/docs/documents.html#dynamic_fields

По принцип той предупреждава, че трябва да внимавате малко как задавате динамични полета, тъй като ще предизвика грешка без метод, ако се опитате да използвате методите за получаване и настройка за поле, което не съществува в документа.

[],[]=са преки пътища за read_attribute(),write_attribute() и трябва да се използват, ако не зададете dynamic_attributes = true във вашия ./config/mongoid.yml file , в противен случай ще получите грешка без метод.

Задаване на allow_dynamic_fields: true може да бъде рисковано, тъй като може да замърсите вашите данни/схема с непреднамерени полета, причинени от грешки във вашия код. Вероятно е по-безопасно да зададете това на false и изрично използвайте [],[]=

# 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. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB не работи. ГРЕШКА:dbpath (/data/db) не съществува.

  2. Усъвършенстване на изкуството за автоматизиране и управление на най-популярните бази данни с отворен код:2017 @ Severalnines

  3. Как да актуализирам/вставя документ в Mongoose?

  4. Шест критични компонента на успешното управление на данните

  5. Как да тествам метод, който се свързва с mongo, без всъщност да се свързва с mongo?