私はモデルを持っています
class MyClass
include Mongoid::Document
include Mongoid::Timestamps
field :a, type: String
field :b, type: String
field :c, type: String
end
では、MyClass コレクション内のすべてのオブジェクトからすべてのa
-s、b
-s、または-s をリスト/配列として取得する方法は? c
Rails/Ruby/Mongoid には、これに対するシンタックス シュガーがありますか?
私は知っています、そうすることが可能です:
all_a = []
MyClass.desc(:created_at).each do |my_object|
all_a.push(my_object.a)
end
しかし、私は考えました:
MyClass.get(:fields => :a)
MyClass.get(:fields => :a,:b)
アップデート:
私は何かを見つけました:
MyClass.create(a: "my_a_string")
MyClass.create(a: "my_another_a_string")
今:
MyClass.only(:a)
動作するはずですが、代わりに次のようになります。
=> #<Mongoid::Criteria
selector: {}
options: {:fields=>{"a"=>1}}
class: MyClass
embedded: false>
いつMyClass.only(:a).to_a
=> [#<MyClass _id: 525f3b9e766465194b000000, created_at: nil, updated_at: nil, a: "my_a_string", b: nil, c: nil>, #<MyClass _id: 525f4111766465194b180000,
created_at: nil, updated_at: nil, a: "my_another_a_string", b: nil, c: nil>]
しかし、私は考えました:
["my_a_string", "my_another_a_string"]
また
[{a: "my_a_string"}, {a: "my_another_a_string"}]