मुझे यह उत्तर सिएटल ब्रिगेड समूह से मिला -
===पी>
मैंने आपके कोड में MongoMapper में एक कुंजी के रूप में परिभाषित start_date नहीं देखा, इसलिए मैं मान लूंगा कि आप अपनी खुद की डेट ऑब्जेक्ट बना रहे हैं, या तो सीधे रूबी के माध्यम से, या रेल द्वारा लिपटे हुए। जहां तक मुझे पता है, और किसी ने मुझे सही किया है, मोंगोस्टोर्स युग के बाद से मिलीसेकंड में यूटीसी समय के रूप में है। इसलिए जब आप akey को MongoMapper में :date मैपिंग के साथ परिभाषित करते हैं, तो आप रूबी में टाइम ऑब्जेक्ट लपेट रहे होते हैं।
इसलिए, यदि आप मोंगो के अंदर एक तिथि संग्रहीत करना चाहते हैं, और इसे मोंगोमैपर द्वारा नहीं बनाया गया था, तो सुनिश्चित करें कि आप यूटीसी में टाइम ऑब्जेक्ट बनाते हैं। मोंगोमैपर एक दिनांक मिश्रण विधि के साथ आता है जिसे to_mongo कहा जाता है जिसका आप उपयोग कर सकते हैं।
>> Time.now.utc
=> Fri Jan 28 03:47:50 UTC 2011
>> require 'date'
=> true
>> date = Date.today
=> #<Date: 4911179/2,0,2299161>
>> Time.utc(date.year, date.month, date.day)
=> Thu Jan 27 00:00:00 UTC 2011
>> require 'rubygems'
=> true
>> require 'mongo_mapper'
=> true
>> Date.to_mongo(date)
=> Thu Jan 27 00:00:00 UTC 2011
लेकिन समय बदलने पर ध्यान दें।
>> Date.to_mongo(Time.now)
=> Thu Jan 27 00:00:00 UTC 2011
>> Date.to_mongo(Time.now.utc)
=> Fri Jan 28 00:00:00 UTC 2011
शुभकामनाएँ।
===पी>
और
. का उपयोग करकेDate.to_mongo(start_date)
यह मेरे लिए काम करता है।