如何检查唯一性但不丢弃Mongoid中的重复项?

时间:2014-01-14 18:40:54

标签: ruby-on-rails-4 mongoid

我不确定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的好处。

0 个答案:

没有答案