MongoDB
 sql >> डेटाबेस >  >> NoSQL >> MongoDB

डेट को सही तरीके से कैसे सेव करें?

सी # ड्राइवर डिफ़ॉल्ट रूप से (अतिरिक्त सेटिंग्स के बिना) स्थानीय तिथियों को डेटाबेस में यूटीसी तिथि के रूप में सहेज रहा है (दिनांक - समय क्षेत्र ऑफसेट) लेकिन बिना किसी कार्रवाई के वापस पढ़ना (इसलिए, यूटीसी तिथि)।

इस वजह से जब आप डेटाबेस से डेटाटाइम लोड करते हैं तो आपको 2 घंटे में अंतर मिलता है (आपका टाइमज़ोन ऑफ़सेट)। दो दृष्टिकोण हैं कि कैसे मोंगोडब सी # ड्राइवर को यूटीसी तिथियों को डिसेरिएलाइजेशन के दौरान स्थानीय टाइमज़ोन तिथियों में परिवर्तित करें:

1.विशेष दिनांक फ़ील्ड के लिए विशेषताओं के माध्यम से:

[BsonDateTimeOptions(Kind = DateTimeKind.Local)]
public DateTime SomeDateProperty {get;set;}

2. सभी डेटाटाइम फ़ील्ड के लिए वैश्विक सेटिंग्स के माध्यम से (डिफ़ॉल्ट UtcInstance . है ):

DateTimeSerializationOptions.Defaults = DateTimeSerializationOptions.LocalInstance;

एक बार जब आप #1 या #2 कर लेंगे तो आपको स्थानीय तिथि दिखाई देगी।

अपडेट करें:

#2 नवीनतम ड्राइवर संस्करण में अप्रचलित है इसलिए इसके बजाय नीचे दिए गए कोड का उपयोग करें:

BsonSerializer.RegisterSerializer(typeof(DateTime), 
             new DateTimeSerializer(DateTimeSerializationOptions.LocalInstance));

अपडेट करें:

#2 फिर से बदल गया है:

BsonSerializer.RegisterSerializer(typeof(DateTime), DateTimeSerializer.LocalInstance);


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB - व्यवस्थापक उपयोगकर्ता अधिकृत नहीं है

  2. MongoDB:एकाधिक सरणी तत्वों का मिलान करें

  3. एक समारोह के लिए एक तर्क के रूप में नेवला पारित करना

  4. एमजीओ - क्वेरी प्रदर्शन लगातार धीमा लगता है (500-650ms)

  5. असंवेदनशील कुशलता के मामले में MongoDB (पाइमोंगो के माध्यम से) को क्वेरी करना