आपको एक समग्र पाइपलाइन लिखनी होगी
$match
- मानदंडों के अनुसार दस्तावेज़ों को फ़िल्टर करें$group
- दस्तावेज़ों को कुंजी फ़ील्ड के आधार पर समूहित करें$addToSet
- अद्वितीय तत्वों को एकत्रित करें$project
- आवश्यक प्रारूप में परियोजना$reduce
-$concatArrays
. द्वारा सरणी की सरणी को सरणी में कम करें
कुल क्वेरी
db.tt.aggregate([
{$match : {"time_broadcast" : "09:13"}},
{$group : {"_id" : "$page_id", "category_list" : {$addToSet : "$category_list"}}},
{$project : {"_id" : 0, "page_id" : "$_id", "category_list" : {$reduce : {input : "$category_list", initialValue : [], in: { $concatArrays : ["$$value", "$$this"] }}}}}
]).pretty()
परिणाम
{ "page_id" : "123456", "category_list" : [ "news", "updates" ] }
{
"page_id" : "1234",
"category_list" : [
"sport",
"handball",
"football",
"sport"
]
}
आप $sort
जोड़ सकते हैं page_id
. द्वारा यदि आवश्यक हो तो पाइपलाइन