प्रलेखन चार प्रकार के समय से संबंधित फ़ील्ड प्रकारों का उल्लेख करता है (http://mongoid.org/en/mongoid/docs/documents.html#fields)। अन्य डेटाबेस में, मैं देख सकता हूं कि इन फ़ील्ड डेटाबेस में अंतर प्रकार कैसे होंगे, लेकिन मोंगोडीबी के लिए वे सभी दिनांक प्रकार नहीं होंगे? क्या यह सिर्फ ActiveRecord के साथ स्थिरता के लिए है?मोंगोइड में, दिनांक, समय, दिनांक समय, और टाइमविथज़ोन फ़ील्ड प्रकारों में कोई अंतर है?
18
A
उत्तर
10
उनके बीच लगभग कोई अंतर नहीं है, वे सभी समय प्रकार लपेटते हैं। आप मोंगो से अनसुलझा करने के बाद इस प्रकार के उदाहरण प्राप्त करने के लिए डेटटाइम, दिनांक या टाइमविथज़ोन बदल सकते हैं।
Mongoid डेटा बाध्यकारी के लिए demongoize/mongoize विधियों को जोड़ने के लिए इस वर्ग को बढ़ाता है। तो एकमात्र अंतर कार्यान्वयन में है।
तो समय कार्यान्वयन
def demongoize(object)
return nil if object.blank?
object = object.getlocal unless Mongoid::Config.use_utc?
if Mongoid::Config.use_activesupport_time_zone?
object = object.in_time_zone(Mongoid.time_zone)
end
object
end
def mongoize(object)
return nil if object.blank?
begin
time = object.__mongoize_time__
if object.respond_to?(:sec_fraction)
::Time.at(time.to_i, object.sec_fraction * 10**6).utc
elsif time.respond_to?(:subsec)
::Time.at(time.to_i, time.subsec * 10**6).utc
else
::Time.at(time.to_i, time.usec).utc
end
rescue ArgumentError
EPOCH
end
end
दिनांक कार्यान्वयन
def demongoize(object)
::Date.new(object.year, object.month, object.day) if object
end
def mongoize(object)
unless object.blank?
begin
time = object.__mongoize_time__
::Time.utc(time.year, time.month, time.day)
rescue ArgumentError
EPOCH
end
end
end
आप देख सकते हैं अन्य implemetations
https://github.com/mongoid/mongoid/blob/master/lib/mongoid/extensions/date.rb#L46 https://github.com/mongoid/mongoid/blob/master/lib/mongoid/extensions/date_time.rb#L49 https://github.com/mongoid/mongoid/blob/master/lib/mongoid/extensions/time.rb#L48 https://github.com/mongoid/mongoid/blob/master/lib/mongoid/extensions/time_with_zone.rb#L32
संबंधित मुद्दे
- 1. दिनांक ऑब्जेक्ट को टाइमविथज़ोन
- 2. दिनांक और समय क्षेत्रों
- 3. दिनांक बनाम दिनांक समय
- 4. नेट दिनांक समय में कनवर्ट जावास्क्रिप्ट दिनांक
- 5. दिनांक समय और CultureInfo
- 6. दिनांक दिनांक और समय को दिनांक दिनांक और समय जोड़ना एक स्ट्रिंग
- 7. दिनांक समय और रेल 3
- 8. सी ++ दिनांक और समय
- 9. विशिष्ट समय और दिनांक
- 10. मर्ज दिनांक और समय
- 11. स्ट्रिंग दिनांक वर्तमान दिनांक/समय?
- 12. ऑटो इनपुट दिनांक और समय इनपुट इनपुट फ़ील्ड में?
- 13. दिनांक समय
- 14. जावास्क्रिप्ट में दिनांक/समय घटाना कैसे करें?
- 15. एक दिनांक समय डेटाबेस फ़ील्ड को "अब"
- 16. Android में दिनांक और समय सेटिंग संवाद
- 17. दिनांक समय अप्रत्याशित परिणाम
- 18. जावा: जेपीए कक्षाएं, दिनांक से दिनांक समय
- 19. दिनांक परिवर्तन के संबंध में दो समय फ़ील्ड के बीच समय अंतर की गणना कैसे करें
- 20. एरलांग और वर्तमान दिनांक समय
- 21. विशिष्ट दिनांक, समय और टाइमज़ोन
- 22. बूटस्ट्रैप दिनांक और समय पिकर
- 23. गोलांग एक्सएमएल उमरशाल और समय। समय फ़ील्ड
- 24. पीएचपी गलत दिनांक/समय
- 25. एंड्रॉइड में केवल दिनांक और कोई समय नहीं
- 26. मुझे दिनांक और समय (वीबीएस)
- 27. पीएचपी - विशिष्ट दिनांक और समय
- 28. पार्सिंग JSON दिनांक समय
- 29. Grails - मैं अपने आवेदन में दिनांक और समय दिनांक/समय कैसे दिखा सकता हूं
- 30. क्या स्कैला में कोई दिनांक/समय डीएसएल यूटिल है?
बस एक चेतावनी: मैंने rspec परीक्षणों में एक अजीब बग देखी है, जहां मिलीटाइम फ़ील्ड पर दावा कभी-कभी मिलीसेकंद अंतर के कारण विफल हो जाता है। मुझे समय के साथ या समस्या से पहले किसी ऑब्जेक्ट को व्यवस्थित रूप से पुनः लोड करने में समस्या नहीं है। –
यह जवाब Mongoid 6.2 में सच नहीं है। मोंगोइड का 'टाइम' डेटा प्रकार 'ActiveSupport :: TimeWithZone' को संग्रहीत करने के लिए कार्य करता है, जबकि 'डेटटाइम' एक शुद्ध रूबी 'डेटटाइम' है। और इन दोनों के बीच महत्वपूर्ण अंतर हैं। – skalee