Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> MongoDB

MongoDB एग्रीगेशन में $subtract, $toDate, $sort, $limit का उपयोग करके सबसे लंबी समय अवधि वाले दस्तावेज़ ढूंढना

MongoDB में तिथि अंतर की गणना और सबसे लंबी अवधि ढूंढना

दो तिथि स्ट्रिंग फ़ील्ड्स (startDate, endDate) के बीच अंतर मिलीसेकंड में निकालने के लिए $toDate (स्ट्रिंग→Date), $subtract (अंतर), फिर $sort और $limit: 1 द्वारा सबसे लंबी अवधि वाला दस्तावेज़ प्राप्त करें।

नमूना डेटा

> db.demo344.insertOne({"startDate": "2020-02-24 10:50:00", "endDate": "2020-02-24 11:50:00"});
{ "acknowledged": true, "insertedId": ObjectId("5e53f52cf8647eb59e5620aa") }
> db.demo344.insertOne({"startDate": "2020-02-24 08:00:00", "endDate": "2020-02-24 11:50:50"});
{ "acknowledged": true, "insertedId": ObjectId("5e53f53df8647eb59e5620ab") }

एग्रीगेशन: सबसे लंबी अवधि

> db.demo344.aggregate([
    {$addFields: {longestTime: {$subtract: [{$toDate: "$endDate"}, {$toDate: "$startDate"}]}}},
    {$sort: {longestTime: -1}},
    {$limit: 1}
]);

परिणाम

{ "_id": ObjectId("5e53f53df8647eb59e5620ab"), "startDate": "2020-02-24 08:00:00", "endDate": "2020-02-24 11:50:50", "longestTime": NumberLong(13850000) }

दूसरा दस्तावेज़ (3 घंटे 50 मिनट 50 सेकंड = ~13,850,000 ms) सबसे लंबा है। $toDate ISODate स्ट्रिंग्स को पार्स करता है। NumberLong 64-बिट पूर्णांक दर्शाता है।

  1. - MongoDB में LIMIT के साथ क्वेरी करना

    MongoDB में limit() मेथड का उपयोग करके परिणाम सीमित करना MongoDB में क्वेरी परिणामों की संख्या सीमित करने के लिए limit() मेथड का उपयोग करें। यह पेजिनेशन और प्रदर्शन के लिए महत्वपूर्ण है। उदाहरण: संग्रह और दस्तावेज़ बनाना > db.demo58.insertOne({Name:David}); { acknowledged : true, insertedId : Ob

  1. - MongoDB में विशिष्ट डेटा फॉर्मेट पर क्वेरी कैसे फ़िल्टर करें?

    विशिष्ट डेटा फॉर्मेट पर क्वेरी फ़िल्टर करने के लिए $dateToString ऑपरेटर का उपयोग करें। आइए दस्तावेज़ों के साथ एक संग्रह बनाएं: > db.demo433.insertOne({"DueDate":new Date("2019-11-23")}); {    "acknowledged" : true,    "insertedId" : Obj

  1. - MongoDB में एक क्वेरी से कई डॉक्यूमेंट्स कैसे अपडेट करें?

    एक क्वेरी से कई डॉक्यूमेंट्स अपडेट करने के लिए MongoDB में bulkWrite() का उपयोग करें। आइए एक कलेक्शन बनाते हैं: > db.demo760.insertOne({id:1,details:{Value1:100,Value2:50}}); { acknowledged : true, insertedId : ObjectId(5eb0309f5637cd592b2a4aee) } > db.demo760.insertOne({id:2,details:{Value1: