我不确定Mongoid中是否可行。我有两个这样的模型。
class Tag
include Mongoid::Document
field :slug, :type => String
field :created_at, :type => DateTime, :default => Time.now
belongs_to :product, :order => :created_at.desc
end
class Product
include Mongoid::Document
paginates_per 30
field :product_id, type: String
field :desc, type: String
field :created_at, type: DateTime
has_many :tag
end
很容易看出产品可以有多个标签。但是,我希望我的产品也能多次使用相同的标签(计数)。现在,如果我这样做
Product.create!({tag: [instance_of_tag1, instance_of_tag1]})
产品系列看起来像这样
{
"product_id" : "some_id",
"desc" : "desc",
"tag" : [ObjectId("1"), ObjectId(1")]
}
但我想在Tag
集合中只有一个标记。这可能吗?因为现在我将在Tag
集合
我可以通过做这样的事情来手动完成
class Product
include Mongoid::Document
paginates_per 30
field :product_id, type: String
field :desc, type: String
field :created_at, type: DateTime
field :tags, type: Array
end
但是我不会得到使用Mongoid的好处。