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

MongoDB Query - Roles के आधार पर केवल Name Field Fetch करना

इसके लिए aggregate() का उपयोग करें। यहाँ हमने 3 roles consider किए हैं - Admin, Guest, और User।

Collection बनाना

> db.demo532.insertOne({"Name":"Chris","Type":"Admin"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e8b4a9def4dcbee04fbbbf9") }
> db.demo532.insertOne({"Name":"David","Type":"Guest"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e8b4aa3ef4dcbee04fbbbfa") }
> db.demo532.insertOne({"Name":"Bob","Type":"User"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e8b4ab0ef4dcbee04fbbbfb") }

सभी Documents Display करना

> db.demo532.find();

Output:

{ "_id" : ObjectId("5e8b4a9def4dcbee04fbbbf9"), "Name" : "Chris", "Type" : "Admin" }
{ "_id" : ObjectId("5e8b4aa3ef4dcbee04fbbbfa"), "Name" : "David", "Type" : "Guest" }
{ "_id" : ObjectId("5e8b4ab0ef4dcbee04fbbbfb"), "Name" : "Bob", "Type" : "User" }

Unique Document Get करने का Query

Same collection में अन्य documents के साथ compare करने के लिए unique document प्राप्त करें:

> db.demo532.aggregate([
...   {$group: {_id:"$Name", "types":{$addToSet:"$Type"}}},
...   {$project: {_id:1, "types": 1, "isSubset": { $setIsSubset: [ ["Admin"], "$types" ] }}},
...   {$match: {"isSubset": false}},
...   {$group: {_id:"$isSubset", "Name": {$push : "$_id"}}},
...   {$project: {"_id": 0, "Name": 1}},
...   {$unwind: "$Name"}
... ])

Output:

{ "Name" : "David" }
{ "Name" : "Bob" }

व्याख्या: यह query उन users को find करता है जिनके पास "Admin" role नहीं है। $setIsSubset check करता है कि क्या ["Admin"] array user के types array का subset है। जिनके लिए false आता है, उन्हें select किया जाता है।

  1. - MongoDB क्वेरी: फील्ड के रिटर्निंग वैल्यूज को लिमिट करें

    इसके लिए $slice का उपयोग करें। आइए दस्तावेजों के साथ एक कलेक्शन बनाते हैं: > db.demo594.insertOne({ id:1, details:[ {Name:Chris,Age:21}, {Name:Bob,Age:20}, {Name:David,Age:23}, {Name:Sam,Age:22} ] }); { acknowledged : true, insertedId : ObjectId(5e9334

  1. - MongoDB क्वेरी: फील्ड मानों में "@email" जैसे स्ट्रिंग की खोज करें

    MongoDB find() का उपयोग करके ईमेल स्ट्रिंग खोजें। आइए एक कलेक्शन बनाते हैं: > db.demo727.insertOne({UserId:John@email.com}); { acknowledged : true, insertedId : ObjectId(5eab375f43417811278f5898) } > db.demo727.insertOne({UserId:John@yahoo.com}); { acknowledged : true, insertedId : ObjectId(5

  1. - MySQL में बूलियन फील्ड के आधार पर केवल एक फील्ड प्राप्त करें

    MySQL WHERE क्लॉज: बूलियन कॉलम के आधार पर कॉलम चुनना MySQL में BOOLEAN (या TINYINT(1)) कॉलम का उपयोग करके पंक्तियों को फ़िल्टर करना सरल है: WHERE boolean_col = TRUE या WHERE boolean_col (सत्य मान के लिए)। उदाहरण: विवाहित कर्मचारियों के नाम प्राप्त करें टेबल बनाएं: CREATE TABLE DemoTable ( Emplo