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

MongoDB में Mongo Shell का उपयोग करके स्ट्रिंग को तिथि या ISODate में कनवर्ट करें

दिनांक मान के रूप में "01-JUN-2009 00:00" का उपयोग करके इसे करने का एक तरीका यहां दिया गया है।

सबसे पहले, समय मानों को पार्स करें:

db.dates.aggregate([
   {
    $project : {
        day: { $substr: [ "$Date_Time", 0, 2 ] },
        month: { $substr: [ "$Date_Time", 3, 3 ] },
        year: { $substr: [ "$Date_Time", 7, 4 ] },
        hour: { $substr: [ "$Date_Time", 12, 2 ] },
        minute: { $substr: [ "$Date_Time", 15, 2 ] }
        }
    },
    { $out : "dates" }
]);

फिर, महीने के MMM स्ट्रिंग को MM न्यूमेरिक में बदलें जैसा आपने कमेंट में बताया है। स्विच स्टेटमेंट का उपयोग करने के लिए आपको संस्करण 3.4 या उच्चतर पर होना होगा:

db.dates.aggregate( [
  {
    $project: {
        "day": "$day",
        "year": "$year",
        "hour": "$hour",
        "minute": "$minute",
        "month" :
        {
            $switch: { 
                branches: [
                    { case: { $eq: [ "$month", "JAN" ] }, then: "01" },
                    { case: { $eq: [ "$month", "FEB" ] }, then: "02" },
                    { case: { $eq: [ "$month", "MAR" ] }, then: "03" },
                    { case: { $eq: [ "$month", "APR" ] }, then: "04" },
                    { case: { $eq: [ "$month", "MAY" ] }, then: "05" },
                    { case: { $eq: [ "$month", "JUN" ] }, then: "06" },
                    { case: { $eq: [ "$month", "JUL" ] }, then: "07" },
                    { case: { $eq: [ "$month", "AUG" ] }, then: "08" },
                    { case: { $eq: [ "$month", "SEP" ] }, then: "09" },
                    { case: { $eq: [ "$month", "OCT" ] }, then: "10" },
                    { case: { $eq: [ "$month", "NOV" ] }, then: "11" },
                    { case: { $eq: [ "$month", "DEC" ] }, then: "12" }
                ]
            }
        }
      }
   },
   { $out : "dates" }
]);

फिर, आप वह स्ट्रिंग बना सकते हैं जिसे MongoDB एक तिथि के रूप में व्याख्यायित करेगा:

db.dates.find().forEach(function(doc) { 
    db.dates.update({_id: doc._id},{$set : {"Date_Time": doc.year + '-' + doc.month + '-' + doc.day + 'T' + doc.hour + ':' + doc.minute}});
});

अंतिम चरण में स्ट्रिंग को दिनांक ():

. में पास करके ISODate का निर्माण करना है
db.dates.find().forEach(function(doc) { 
    doc.Date_Time=new Date(doc.Date_Time);
    db.dates.save(doc); 
})



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB से पांडस डेटा फ्रेम में नेस्टेड डेटा प्राप्त करना

  2. MongoDB जावा नेस्टेड दस्तावेज़ कुंजी नाम में डॉट्स का उपयोग करके सुलभ नहीं हैं

  3. एकत्रीकरण में अमान्य ऑपरेटर '$size'

  4. मैं PyMongo के माध्यम से MongoDB में संग्रहीत Twitter डेटा से तिथियों की तुलना कैसे करूं?

  5. MongoDB 2.6 अद्यतन त्रुटि