mongoid 用数组创建文档
mongoid creating document with array
我有两个 mongoid 模型:
bid.rb 和 supplier.rb
class Bid
include Mongoid::Document
field :amount, type: BigDecimal
embeds_one :supplier
end
我想查询嵌入的 :supplier
:name
并在 JSON 响应中显示 :bid
:amount
。
我试过各种各样的方法,我得到的最远的是:
Bid.all.pluck(:supplier, :amount)
其中只有 returns 供应商 ID 和金额。
现在我可以写 bid_data = Bid.all
以获得以下 JSON 响应:
{"bid_data":
[{"_id":{"$oid":"58a0a9a531d77f01529a22ba"},
"amount":"5335.0",
"supplier":{"_id":{"$oid":"58a087b131d77f01529a229c"},"name":"Ford","comment":3}
}]}
如何在控制器中查询 Bid.supplier.name
?
理想情况下,我想要 Bid.all.pluck(:supplier.name, :amount)
当你说:
embeds_one :supplier
您实际上是在说 bids
集合有一个名为 supplier
的 Hash
字段,并且 Hash
应该包含在通常的 Mongoid::Document
东西。这意味着您可以像查询任何其他 Hash
:
一样查询 supplier
Bid.where('supplier.name' => 'Ford')
我有两个 mongoid 模型:
bid.rb 和 supplier.rb
class Bid
include Mongoid::Document
field :amount, type: BigDecimal
embeds_one :supplier
end
我想查询嵌入的 :supplier
:name
并在 JSON 响应中显示 :bid
:amount
。
我试过各种各样的方法,我得到的最远的是:
Bid.all.pluck(:supplier, :amount)
其中只有 returns 供应商 ID 和金额。
现在我可以写 bid_data = Bid.all
以获得以下 JSON 响应:
{"bid_data":
[{"_id":{"$oid":"58a0a9a531d77f01529a22ba"},
"amount":"5335.0",
"supplier":{"_id":{"$oid":"58a087b131d77f01529a229c"},"name":"Ford","comment":3}
}]}
如何在控制器中查询 Bid.supplier.name
?
理想情况下,我想要 Bid.all.pluck(:supplier.name, :amount)
当你说:
embeds_one :supplier
您实际上是在说 bids
集合有一个名为 supplier
的 Hash
字段,并且 Hash
应该包含在通常的 Mongoid::Document
东西。这意味着您可以像查询任何其他 Hash
:
supplier
Bid.where('supplier.name' => 'Ford')