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

MongoDB में $group ऑपरेशन में सॉर्ट करके केवल पहले दो फील्ड प्राप्त करें


आइए दस्तावेजों के साथ एक कलेक्शन बनाते हैं:

> db.demo576.insertOne({id:101,Name:"Chris",Marks:45}) { "acknowledged" : true, "insertedId" : ObjectId("5e916c3b581e9acd78b427fa") }
> db.demo576.insertOne({id:101,Name:"John",Marks:55}) { "acknowledged" : true, "insertedId" : ObjectId("5e916c43581e9acd78b427fb") }
> db.demo576.insertOne({id:101,Name:"John",Marks:65}) { "acknowledged" : true, "insertedId" : ObjectId("5e916c47581e9acd78b427fc") }
> db.demo576.insertOne({id:102,Name:"David",Marks:37}) { "acknowledged" : true, "insertedId" : ObjectId("5e916c55581e9acd78b427fd") }
> db.demo576.insertOne({id:102,Name:"David",Marks:75}) { "acknowledged" : true, "insertedId" : ObjectId("5e916c5e581e9acd78b427fe") }

find() मेथड की मदद से कलेक्शन के सभी दस्तावेज प्रदर्शित करें:

> db.demo576.find();

यह निम्न आउटपुट देगा:

{ "_id" : ObjectId("5e916c3b581e9acd78b427fa"), "id" : 101, "Name" : "Chris", "Marks" : 45 }
{ "_id" : ObjectId("5e916c43581e9acd78b427fb"), "id" : 101, "Name" : "John", "Marks" : 55 }
{ "_id" : ObjectId("5e916c47581e9acd78b427fc"), "id" : 101, "Name" : "John", "Marks" : 65 }
{ "_id" : ObjectId("5e916c55581e9acd78b427fd"), "id" : 102, "Name" : "David", "Marks" : 37 }
{ "_id" : ObjectId("5e916c5e581e9acd78b427fe"), "id" : 102, "Name" : "David", "Marks" : 75 }

$group ऑपरेशन में सॉर्ट करके केवल पहले दो फील्ड प्राप्त करने के लिए क्वेरी:

> var query = [
    { "$sort": { "Marks": 1 } },
    { "$group": {
        "_id": "$id",
        "out": { "$first": "$$ROOT" }
    }},
    { "$project": {
        "_id": "$out._id",
        "id": "$out.id",
        "Name": "$out.Name",
        "MinMarks": "$out.Marks"
    }}
];
> db.demo576.aggregate(query);

यह निम्न आउटपुट देगा (प्रत्येक id के लिए न्यूनतम मार्क्स वाला पहला दस्तावेज):

{ "_id" : ObjectId("5e916c3b581e9acd78b427fa"), "id" : 101, "Name" : "Chris", "MinMarks" : 45 }
{ "_id" : ObjectId("5e916c55581e9acd78b427fd"), "id" : 102, "Name" : "David", "MinMarks" : 37 }

  1. - MongoDB Documents में First 4 Values Ignore करके Next 3 Display करना

    इसके लिए $slice का उपयोग करें और ignore करने वाले values की count और display करने वाले values की count set करें। Collection बनाना > db.demo693.insertOne({Values:[10,746,736,283,7363,424,3535]}); { acknowledged : true, insertedId : ObjectId(5ea58a04ece4e5779399c07b) } > db.demo693.insertOne({V

  1. - MongoDB में ID द्वारा सॉर्ट करें और आइटम्स को रिवर्स करें

    $natural ऑपरेटर दस्तावेजों को नेचुरल ऑर्डर (सम्मिलन क्रम) में लौटाता है। आइटम्स को रिवर्स करने के लिए $natural:-1 का उपयोग करें। आइए दस्तावेजों के साथ एक कलेक्शन बनाते हैं: > db.demo710.insertOne({id:101,Name:Robert}); { acknowledged : true, insertedId : ObjectId(5ea83a855d33e20ed1097b7a) } >

  1. - MongoDB एग्रीगेशन: सबसे कम मार्क्स वाले दो दस्तावेज प्राप्त करें

    मार्क्स की सॉर्ट की गई सूची प्राप्त करने के लिए $sort का उपयोग करें। केवल दो दस्तावेज प्रदर्शित करने के लिए जिनमें सबसे कम मार्क्स हैं, $limit: 2 का उपयोग करें। आइए दस्तावेजों के साथ एक कलेक्शन बनाते हैं: > db.demo709.insertOne({Name:John,Marks:75}); { acknowledged : true, insertedId : ObjectId(