MongoDB खोल में, यदि मैं निम्नलिखित करते हैं, तो एक सूचकांक बनाया जाता है, और यह भी डाला जा रहा से डुप्लिकेट रिकॉर्ड को रोकने:क्यों मोंगो डीबी अद्वितीय सूचकांक बना सकता है लेकिन मोंगोइड नहीं कर सकता है?
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 शैल या Mongoid में सूचकांक निर्मित, अब मैं MongoDB खोल में संग्रह ड्रॉप कर सकते हैं , और उसके बाद सूचकांक बनाते हैं, और दो दस्तावेज़ों को दो बार जोड़ने के लिए मोंगोइड का उपयोग करते हैं, और मोंगोड डुप्लिकेट कुंजी के लिए त्रुटि कहेंगे।
मैंगॉइड का कौन सा संस्करण आप उपयोग कर रहे हैं? –