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

MongoDB एग्रीगेशन में $min और $ifNull का उपयोग करके प्रत्येक दस्तावेज़ में तीन तिथि फ़ील्ड्स में से सबसे पुरानी तिथि ढूंढना

MongoDB में प्रति-दस्तावेज़ सबसे पुरानी तिथि: $min + $ifNull

एक दस्तावेज़ में कई तिथि फ़ील्ड्स में से सबसे पुरानी (न्यूनतम) तिथि ढूंढने के लिए, $project में $min के साथ सरणी पास करें। $ifNull लापता फ़ील्ड्स को वर्तमान तिथि (या कोई डिफ़ॉल्ट) से बदलता है ताकि वे न्यूनतम गणना को प्रभावित न करें।

नमूना डेटा

> db.demo353.insertOne({"Date1": new ISODate("2019-01-10"), "Date2": new ISODate("2016-01-21"), "Date3": new ISODate("2020-04-11")});
{ "acknowledged": true, "insertedId": ObjectId("5e568261f8647eb59e5620be") }
> db.demo353.insertOne({"Date1": new ISODate("2011-11-20"), "Date2": new ISODate("2013-12-10"), "Date3": new ISODate("2014-01-05")});
{ "acknowledged": true, "insertedId": ObjectId("5e56827ff8647eb59e5620bf") }

एग्रीगेशन: प्रत्येक दस्तावेज़ के लिए सबसे पुरानी तिथि

> db.demo353.aggregate([
    {$project: {
        OldestDate: {$min: [
            {$ifNull: ["$Date1", new Date()]},
            {$ifNull: ["$Date2", new Date()]},
            {$ifNull: ["$Date3", new Date()]}
        ]}
    }}
]);

परिणाम

{ "OldestDate": ISODate("2016-01-21T00:00:00Z") }  // पहला दस्तावेज़
{ "OldestDate": ISODate("2011-11-20T00:00:00Z") }  // दूसरा दस्तावेज़

प्रत्येक दस्तावेज़ के लिए तीन तिथियों में से न्यूनतम लौटाई गई। $ifNull सुनिश्चित करता है कि यदि कोई फ़ील्ड गायब है, तो उसे भविष्य की तिथि (new Date()) माना जाए ताकि वह "सबसे पुरानी" न बने। $min सरणी इनपुट स्वीकार करता है (MongoDB 3.6+)।

  1. - MongoDB find() क्वेरी: नेस्टेड दस्तावेज के लिए

    नेस्टेड दस्तावेज से मान प्राप्त करने के लिए, डॉट नोटेशन का उपयोग करें। आइए दस्तावेजों के साथ एक कलेक्शन बनाते हैं: > db.demo591.insert([ { Name: John, Age: 23 }, { Name: Carol, Age: 26 }, { Name: Robert, Age: 29, details: [ { Email: Robert@gmail.com, CountryName:

  1. - MongoDB क्वेरी: नेस्टेड दस्तावेज अपडेट करें

    आइए दस्तावेजों के साथ एक कलेक्शन बनाते हैं: > db.demo595.insertOne({ Information: [ { _id: new ObjectId(), Name:Chris }, { _id:new ObjectId(), Name:Robert } ] }); { acknowledged : true, insertedId : ObjectId(5e93369cfd2d90c177b5bce4) } find() मेथड की मदद से कलेक्शन के सभी

  1. - MongoDB क्वेरी: नेस्टेड दस्तावेज अपडेट करें

    नेस्टेड दस्तावेज को अपडेट करने के लिए, update() का उपयोग करें और उसके भीतर डॉट नोटेशन का उपयोग करें। आइए दस्तावेजों के साथ एक कलेक्शन बनाते हैं: > db.demo607.insertOne({ id:1, Info1: { Name: Chris, Age: 21, Info2: { SubjectName: MongoDB, Ma