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

MongoDB में क्वेरी से केवल विशिष्ट फील्ड कैसे चुनें और प्रदर्शित करें?

MongoDB में क्वेरी परिणाम से केवल वांछित फील्ड प्राप्त करने के लिए find() के दूसरे आर्गुमेंट (प्रोजेक्शन) में फील्ड को 1 (या true) सेट करें।

उदाहरण

दस्तावेज़ बनाएं:

> db.querySelectDemo.insertOne({UserId: 100, UserName: "Chris", UserAge: 25});
{ "acknowledged" : true, "insertedId" : ObjectId("5ce90eb478f00858fb12e90e") }
> db.querySelectDemo.insertOne({UserId: 101, UserName: "Robert", UserAge: 26});
{ "acknowledged" : true, "insertedId" : ObjectId("5ce90ec578f00858fb12e90f") }
> db.querySelectDemo.insertOne({UserId: 103, UserName: "David", UserAge: 27});
{ "acknowledged" : true, "insertedId" : ObjectId("5ce90ed478f00858fb12e910") }

सभी दस्तावेज़ देखें:

> db.querySelectDemo.find().pretty();
{ "_id" : ObjectId("5ce90eb478f00858fb12e90e"), "UserId" : 100, "UserName" : "Chris", "UserAge" : 25 }
{ "_id" : ObjectId("5ce90ec578f00858fb12e90f"), "UserId" : 101, "UserName" : "Robert", "UserAge" : 26 }
{ "_id" : ObjectId("5ce90ed478f00858fb12e910"), "UserId" : 103, "UserName" : "David", "UserAge" : 27 }

केवल UserName फील्ड प्राप्त करें (_id बाहर करें)

> db.querySelectDemo.find({}, {_id: 0, UserName: true});

आउटपुट:

{ "UserName" : "Chris" }
{ "UserName" : "Robert" }
{ "UserName" : "David" }

प्रोजेक्शन नियम:

  • field: 1 या field: true - फील्ड शामिल करें
  • field: 0 या field: false - फील्ड बाहर करें
  • _id डिफ़ॉल्ट रूप से शामिल होता है - बाहर करने के लिए _id: 0 स्पष्ट करें
  • शामिल और बाहर करने को मिश्रित नहीं कर सकते (केवल _id अपवाद)

नेस्टेड फील्ड प्रोजेक्शन

// नेस्टेड ऑब्जेक्ट का फील्ड
db.collection.find({}, {"address.city": 1, _id: 0})

// सरणी का फील्ड
db.collection.find({}, {"items.name": 1, _id: 0})

एग्रीगेशन में $project

db.collection.aggregate([
  {$project: {_id: 0, UserName: 1, UserAge: 1}}
])

एग्रीगेशन अधिक शक्तिशाली है - गणना किए गए फील्ड, नाम बदलना, पुनर्गठन कर सकता है।

  1. - MongoDB में नया फ़ील्ड जोड़कर कीमत को विभाजित करके कन्कैटनेट करना

    $addFields, $map, $divide, $toString और $reduce का उपयोग करके नया फ़ील्ड बनाएं। डेमो डेटा db.demo719.insertOne({ Number:7374644, details : { otherDetails : [ { ProductId :102, ProductPrice : NumberInt(500) }, { ProductId :103, ProductPrice : NumberInt(2000) }

  1. - MongoDB में केवल यूनिक रिकॉर्ड्स प्रदर्शित करना और डुप्लिकेट्स को अनदेखा करना

    किसी फ़ील्ड के विशिष्ट मान प्राप्त करने के लिए distinct() मेथड का उपयोग करें। डेमो डेटा > db.demo613.insertOne({Name:Chris}); > db.demo613.insertOne({Name:Bob}); > db.demo613.insertOne({Name:Bob}); > db.demo613.insertOne({Name:David}); > db.demo613.insertOne({Name:Chris}); > db.de

  1. - नेस्टेड MongoDB डॉक्यूमेंट्स से केवल कीज़ कैसे प्रदर्शित करें?

    आइए एक कलेक्शन बनाते हैं: > db.demo740.insertOne({ details: [ { Name:Chris, Age:21, CountryName:US }, { Name:Bob, Age:20, CountryName:UK, isMarried:true } ] }); { acknowledged : true, insertedId : ObjectId(5ead700c57bb72a10bcf066d) } find() से सभी डॉक्यूमेंट्स देखें: > db.demo740.find(); आउटप