मैट जॉनसन द्वारा उल्लिखित सर्वर-6310 के अलावा, एक अन्य समाधान $project
का उपयोग करना है सही स्थानीय क्षेत्र में "समय को शिफ्ट" करने के लिए यूटीसी समय क्षेत्र से जोड़ने या घटाने के लिए ऑपरेटर। पता चलता है कि आप मिलीसेकंड में समय जोड़ या घटा सकते हैं।
उदाहरण के लिए, मान लें कि मेरे पास orderTime
. नामक दिनांक फ़ील्ड है . मैं ईडीटी के लिए पूछताछ करना चाहता हूं। यानी यूटीसी से -4 घंटे। यानी 4*60*60*1000 मिलीसेकंड।
तो मैं day_ordered
. पाने के लिए निम्नलिखित प्रक्षेपण लिखूंगा मेरे सभी रिकॉर्ड के लिए स्थानीय समय में:
db.table.aggregate(
{ $project : { orderTimeLocal : { $subtract : [ "$orderTime", 14400000] } } },
{ $project : { day_ordered : { $dayOfYear : "$orderTimeLocal" } } })