नीचे दिया गया उत्तर आपके वांछित परिणाम लौटाएगा। पहला $match
केवल cat
के बिना दस्तावेज़ों को फ़िल्टर करने के लिए उपयोग किया जाता है इसमें बिल्कुल भी, text
. की सहायता से अनुक्रमणिका। यदि आप इस चरण का उपयोग नहीं करते हैं, तो परिणाम समान और सही होंगे लेकिन धीमे हो सकते हैं।
db.pages.aggregate([
{
$match: {
$text: {
$search: "cat"
}
}
},
{
$unwind: '$articles'
},
{
$match: {
'articles.articleContent': /cat/
}
},
{
$group: {
_id: {
_id: '$_id',
pageNo: '$pageNo'
},
articles: {
$push: '$articles'
}
}
},
{
$project: {
_id: '$_id._id',
pageNo: '$_id.pageNo',
articles: 1
}
}
])