यदि आप अपने आवेदन में समय-क्षेत्र के समर्थन की परवाह नहीं करते हैं, तो MongoDB में बुनियादी प्रश्नों के लिए स्ट्रिंग्स का उपयोग करना ठीक काम करना चाहिए (लेकिन अगर इससे कोई फर्क पड़ता है, तो आप एक वास्तविक Date
चाहते हैं। टाइप करें)।
हालांकि, यदि आप बाद में दिनांक गणित करना चाहते हैं या अपने दिनांक फ़ील्ड के साथ एकत्रीकरण फ्रेमवर्क का उपयोग करना चाहते हैं, तो यह आवश्यक है कि फ़ील्ड वास्तव में एक Date
हो टाइप करें:
http://docs.mongodb.org/manual/reference/aggregation/ #डेट-ऑपरेटर
उदाहरण के लिए, आप $dayOfWeek
. का उपयोग कर सकते हैं Date
पर कार्य करें टाइप किया गया फ़ील्ड।
आप संभवत:$substr
. का उपयोग करके वर्ष दर वर्ष समूह जैसी कुछ सरल चीजें कर सकते हैं (doc
) MongoDB में, लेकिन परिणामी कोड उतना स्पष्ट नहीं होगा (न ही संभवतः प्रदर्शन भी करेगा)।
हालांकि यह बहुत बड़ा अंतर नहीं है, मैं उन्हें Date
. के रूप में संग्रहीत करने की अनुशंसा करता हूं आम तौर पर यदि संभव हो तो टाइप करें।
मुझे दस्तावेज़ों
में दिखाई देता है पर्ल ड्राइवर के लिए कि डेवलपर्स को DateTime
. का उपयोग करने के खिलाफ चेतावनी दी गई है इस तथ्य के कारण कि यह बहुत धीमा है, इसलिए हो सकता है कि यदि आप नियमित रूप से पर्ल का उपयोग करते हैं, और एकत्रीकरण फ्रेमवर्क कोई बड़ा मुद्दा नहीं है, तो आप उन्हें संख्याओं या तारों के रूप में संग्रहीत करने और आवश्यकतानुसार उन्हें परिवर्तित करने से बेहतर होंगे। पर्ल।
यदि स्थान एक समस्या है, तो अनावश्यक वर्णों को हटा दें (जैसे -
):
20130613 ->
4 bytes for length of string
8 bytes encoded as UTF-8
NULL character
वह 13 अक्षर होगा। बीएसओएन
में दिनांक समय मान /MongoDB को दूसरी ओर 8 बाइट्स की आवश्यकता होती है (जैसा कि पर्ल $time
. करेगा) समारोह)।
(मैं दृढ़ता से अनुशंसा करता हूं कि आप यह पता लगाने के लिए कुछ प्रदर्शन परीक्षण करें कि Date
का उपयोग करने का प्रदर्शन प्रभाव है या नहीं पर्ल के साथ MongoDB में टाइप करने से आपके सामान्य कार्यप्रवाह प्रभावित होंगे।)