在MongoDB的外殼,如果我做了以下內容,然後創建了索引,並且還可以防止插入重複記錄:爲什麼MongoDB可以創建唯一的索引,但Mongoid不能?
db.analytics.ensureIndex({page: 1, some_id: 1, ga_date: -1}, {unique: true});
但我認爲Mongoid可以這樣做: http://mongoid.org/docs/indexing/
所以,我有:
class PageAnalytic < Analytic
include Mongoid::Document
field :page, :type => String
field :some_id, :type => Integer
field :ga_date, :type => Time
field :pageviews, :type => Integer
field :timeOnPage, :type => Integer
index(
[
[ :page, Mongo::ASCENDING ],
[ :some_id, Mongo::ASCENDING ],
[ :ga_date, Mongo::DESCENDING ]
],
:unique => true
)
end
,並做了
rake db:create_indexes
但仍然可以插入重複記錄?
更新:這是很奇怪的,但之後,我加入了MongoDB的殼索引和刪除的集合,然後重新無論是在MongoDB的Shell或Mongoid指數,現在我可以刪除MongoDB中殼收集,然後rake創建索引,並使用mongoid兩次添加相同的文檔,並且mongod會爲重複鍵聲明錯誤。
你使用的是什麼版本的mongoid? – 2011-04-26 14:15:03