Nella shell MongoDB, se faccio il seguente, quindi viene creato un indice, e anche prevenire i record duplicati da essere inserito:Perché MongoDB può creare indici univoci ma Mongoid non può?
db.analytics.ensureIndex({page: 1, some_id: 1, ga_date: -1}, {unique: true});
ma ho pensato Mongoid può fare lo stesso: http://mongoid.org/docs/indexing/
così ho:
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
e fare un
rake db:create_indexes
ma ancora, i record duplicati possono essere inseriti?
Aggiornamento: è abbastanza strano, ma dopo che ho aggiunto l'indice nel guscio MongoDB e far cadere la raccolta, e quindi ricreato l'indice sia in Shell MongoDB o Mongoid, ora posso cadere la raccolta in guscio MongoDB , quindi rake crea l'indice e usa mongoid per aggiungere due volte gli stessi documenti, e mongod dirà l'errore per la chiave duplicata.
quale versione di mongeo stai usando? –