MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Lista atrybutów dynamicznych w modelu Mongoid

Po prostu umieść w swoim modelu coś takiego:

module DynamicAttributeSupport

  def self.included(base)
    base.send :include, InstanceMethods
  end

  module InstanceMethods
    def dynamic_attributes
      attributes.keys - _protected_attributes[:default].to_a - fields.keys
    end

    def static_attributes
      fields.keys - dynamic_attributes
    end
  end

end

a oto specyfikacja z nim związana:

require 'spec_helper'

describe "dynamic attributes" do

  class DynamicAttributeModel
    include Mongoid::Document
    include DynamicAttributeSupport
    field :defined_field, type: String
  end

  it "provides dynamic_attribute helper" do
    d = DynamicAttributeModel.new(age: 45, defined_field: 'George')
    d.dynamic_attributes.should == ['age']
  end

  it "has static attributes" do
    d = DynamicAttributeModel.new(foo: 'bar')
    d.static_attributes.should include('defined_field')
    d.static_attributes.should_not include('foo')
  end

  it "allows creation with dynamic attributes" do
    d = DynamicAttributeModel.create(age: 99, blood_type: 'A')
    d = DynamicAttributeModel.find(d.id)
    d.age.should == 99
    d.blood_type.should == 'A'
    d.dynamic_attributes.should == ['age', 'blood_type']
  end
end


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Kaa Java SDK nie synchronizuje się z KAA Sandbox MongoDB na AWS

  2. Polecenie przypomnienia przy użyciu MongoDB discord.py

  3. Mongodb Próbuję uzyskać wybrane pola do powrotu z agregatu

  4. MongoDB Java Inserting Throws org.bson.codecs.configuration.CodecConfigurationException:Nie można znaleźć kodeka dla klasy io.github.ilkgunel.mongodb.Pojo

  5. „autoIndexID” nie jest prawidłową opcją kolekcji — mongoDB