我有以下型號如何執行獨特的嵌入式文件mongoid
class Person
include Mongoid::Document
embeds_many :tasks
end
class Task
include Mongoid::Document
embedded_in :commit, :inverse_of => :tasks
field :name
end
如何確保以下?
person.tasks.create :name => "create facebook killer"
person.tasks.create :name => "create facebook killer"
person.tasks.count == 1
different_person.tasks.create :name => "create facebook killer"
person.tasks.count == 1
different_person.tasks.count == 1
即任務名稱是一個特定的人
內唯一已經檢查了有關索引的文檔我認爲以下可能的工作:
class Person
include Mongoid::Document
embeds_many :tasks
index [
["tasks.name", Mongo::ASCENDING],
["_id", Mongo::ASCENDING]
], :unique => true
end
但
person.tasks.create :name => "create facebook killer"
person.tasks.create :name => "create facebook killer"
還在生產取得重複。上述人士表示
指數的配置將轉化爲對MongoDB的
db.things.ensureIndex({firstname : 1, 'tasks.name' : 1}, {unique : true})
我添加細節的什麼人指數的配置將是問題翻譯成mongodb。它不包括dropDups:true,所以我會看看這個。 – opsb 2010-12-02 21:12:24
看來dropDups僅在首次創建新索引時使用,因此它不會解決我的問題。 – opsb 2010-12-02 21:14:26