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

Mongo पर दिनांक स्ट्रिंग (आरोही) के आधार पर छाँटें

मान लें कि हमारे पास आपके प्रश्न में दी गई सूची है

> db.dates.insertMany([{ "date": "01/01/2014" },
    { "date": "01/02/2014" },
    { "date": "02/01/2014" },
    { "date": "02/02/2014" }])
{
        "acknowledged" : true,
        "insertedIds" : [
                ObjectId("5a314eae330cc13d0c9b10c4"),
                ObjectId("5a314eae330cc13d0c9b10c5"),
                ObjectId("5a314eae330cc13d0c9b10c6"),
                ObjectId("5a314eae330cc13d0c9b10c7")
        ]
}

MongoDB 3.6 के भीतर हम एकत्रीकरण ढांचे का उपयोग कर सकते हैं और $dateFromString . का उपयोग कर सकते हैं (https://docs.mongodb.com/manual/reference/operator /एग्रीगेशन/डेटफ्रॉमस्ट्रिंग/ ) पाइपलाइन ऑपरेटर स्ट्रिंग दिनांक को दिनांक में बदलने के लिए और फिर मान को सॉर्ट करने के लिए:

> db.dates.aggregate([
    { "$project" : { "date" : { "$dateFromString" : { "dateString" : "$date"} } } },
    { "$sort" : { "date" : 1 } }
    ])
{ "_id" : ObjectId("5a314eae330cc13d0c9b10c4"), "date" : ISODate("2014-01-01T00:00:00Z") }
{ "_id" : ObjectId("5a314eae330cc13d0c9b10c5"), "date" : ISODate("2014-01-02T00:00:00Z") }
{ "_id" : ObjectId("5a314eae330cc13d0c9b10c6"), "date" : ISODate("2014-02-01T00:00:00Z") }
{ "_id" : ObjectId("5a314eae330cc13d0c9b10c7"), "date" : ISODate("2014-02-02T00:00:00Z") }

मोंगोडीबी 3.6 के लिए पियर आपके स्ट्रिंग को एक लेक्सिसियल स्ट्रिंग तिथि में बदलने के लिए एक वैकल्पिक हल है:

> db.dates.aggregate([
    { "$project" : {
        "date" : {
            "$let" : {
                "vars" : { "parts":{ "$split" : [ "$date", "/" ] } },
                "in" : {
                    "$concat" : [
                        { "$arrayElemAt" : [ "$$parts" , 2 ] },
                        "-",
                        { "$arrayElemAt" : [ "$$parts", 1 ] },
                        "-",
                        { "$arrayElemAt" : [ "$$parts", 0 ] } ]
                    }
                }
            }
        }
    },
    { "$sort" : { "date" : 1 } }
])

{ "_id" : ObjectId("5a314eae330cc13d0c9b10c4"), "date" : "2014-01-01" }
{ "_id" : ObjectId("5a314eae330cc13d0c9b10c6"), "date" : "2014-01-02" }
{ "_id" : ObjectId("5a314eae330cc13d0c9b10c5"), "date" : "2014-02-01" }
{ "_id" : ObjectId("5a314eae330cc13d0c9b10c7"), "date" : "2014-02-02" }

मुझे पता है कि यह जावास्क्रिप्ट में है और आपने उल्लेख किया है कि यह PHP में था, लेकिन यह व्यावहारिक रूप से वही है, PHP दस्तावेज़ चेकआउट करें (http://php.net/manual/en/mongocollection.aggregate.php )




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB में रनवे इंडेक्स बिल्ड को कैसे रोकें?

  2. mongo/नोड TypeError:कॉलबैक क्वेरी पर कोई फ़ंक्शन नहीं है

  3. pymongo update_one (), upsert =$ ऑपरेटरों का उपयोग किए बिना सच है

  4. हम स्प्रिंग बूट का उपयोग करके मोंगोडब के लिए ऑटो जेनरेटेड फ़ील्ड कैसे बना सकते हैं?

  5. नेवला इंटरनेट के बिना कनेक्ट नहीं हो सकता