फ़िल्टर और प्राप्त करने के लिए, प्रोजेक्शन के साथ MongoDB $filter और $match का उपयोग करें। आइए दस्तावेज़ों के साथ एक संग्रह बनाएं:
> db.demo507.insertOne(
{
"Information":
[
{"Name":"John","SubjectName":"MySQL"},
{"Name":"Bob","SubjectName":"MongoDB"},
{"Name":"Chris","SubjectName":"MySQL"},
{"Name":"David","SubjectName":"C++"}
]
});
{ "acknowledged" : true, "insertedId" : ObjectId("5e8836d3987b6e0e9d18f577") }
find() मेथड की मदद से संग्रह के सभी दस्तावेज़ प्रदर्शित करें:
> db.demo507.find().pretty();
यह निम्न आउटपुट देगा:
{
"_id" : ObjectId("5e8836d3987b6e0e9d18f577"),
"Information" : [
{ "Name" : "John", "SubjectName" : "MySQL" },
{ "Name" : "Bob", "SubjectName" : "MongoDB" },
{ "Name" : "Chris", "SubjectName" : "MySQL" },
{ "Name" : "David", "SubjectName" : "C++" }
]
}
ऑब्जेक्ट्स में फ़ील्ड्स फ़िल्टर करने की क्वेरी:
> db.demo507.aggregate([
{$match: {"Information.SubjectName" : "MySQL" } },
{$project: {
_id:0,
Information: {
$filter: {
input: '$Information',
as: 'result',
cond: {$eq: ['$$result.SubjectName', 'MySQL']}
}
}
}},
{$project: {Information: { SubjectName:1}}}
]);
यह निम्न आउटपुट देगा:
{ "Information" : [ { "SubjectName" : "MySQL" }, { "SubjectName" : "MySQL" } ] }