MongoDB प्रोजेक्शन: ऐरे के अंदर केवल विशिष्ट फ़ील्ड लौटाएं
क्वेरी परिणाम में ऐरे के ऑब्जेक्ट से केवल चुने हुए फ़ील्ड शामिल करने के लिए प्रोजेक्शन में डॉट नोटेशन उपयोग करें।
कलेक्शन बनाएं और डॉक्यूमेंट इन्सर्ट करें
> db.projectionAnElementDemo.insertOne({
"CustomerId": 100,
"CustomerDetails": [
{"CustomerName": "Chris", "CustomerCountryName": "US"},
{"CustomerName": "Robert", "CustomerCountryName": "UK"}
]
});
{ "acknowledged": true, "insertedId": ObjectId("5cd31c56b64f4b851c3a13ea") }
डॉक्यूमेंट देखें
> db.projectionAnElementDemo.find().pretty();
{
"_id": ObjectId("5cd31c56b64f4b851c3a13ea"),
"CustomerId": 100,
"CustomerDetails": [
{"CustomerName": "Chris", "CustomerCountryName": "US"},
{"CustomerName": "Robert", "CustomerCountryName": "UK"}
]
}
केवल CustomerId और CustomerDetails.CustomerName प्रोजेक्ट करें
> db.projectionAnElementDemo.find({}, {CustomerId: 1, "CustomerDetails.CustomerName": 1}).pretty();
{
"_id": ObjectId("5cd31c56b64f4b851c3a13ea"),
"CustomerId": 100,
"CustomerDetails": [
{"CustomerName": "Chris"},
{"CustomerName": "Robert"}
]
}
व्याख्या
{}- खाली क्वेरी (सभी डॉक्यूमेंट)CustomerId: 1- CustomerId शामिल करें"CustomerDetails.CustomerName": 1- ऐरे के हर ऑब्जेक्ट में केवल CustomerName शामिल करें_idडिफ़ॉल्ट रूप से शामिल होता है, बाहर करने के लिए_id: 0जोड़ें
अन्य प्रोजेक्शन उदाहरण
// _id बाहर करें
db.projectionAnElementDemo.find({}, {_id: 0, CustomerId: 1, "CustomerDetails.CustomerName": 1})
// ऐरे का पहला एलिमेंट (पोजीशनल $)
db.collection.find({}, {"arrayField.$": 1})
// $elemMatch से कंडीशनल प्रोजेक्शन
db.collection.find({}, {arrayField: {$elemMatch: {condition}}})