2016-08-04 190 views
0

這裏是我的last question,並且here是我所採用的解決方案。但我有另一個問題。過濾器和顯示數據

這是我想要顯示我的類別,但是我也有子類類別內。

<ul> 
    {{#each group in groups}} 
     <li class="col-md-2"> 
     <ul> 
      {{#each category in group}} 
      <li class="dropdown-header>{{category.category}}</li> 
      // <li>*Subcategories</li> this is where i want to display it 
      {{/each}} 
     </ul> 
     </li> 
    {{/each}} 
    </ul> 

這是我的數據是如何組織的

var data = [ 
    { category : "Cat1", subcategory : "Scat1" }, 
    { category : "Cat1", subcategory : "Scat2" }, 
    { category : "Cat2", subcategory : "Scat3" }, 
    { category : "Cat2", subcategory : "Scat4" }, 
    { category : "Cat3", subcategory : "Scat1" }, 
    { category : "Cat3", subcategory : "Scat2" }, 
    { category : "Cat4", subcategory : "Scat3" }, 
    { category : "Cat4", subcategory : "Scat4" }, 
    { category : "Cat5", subcategory : "Scat5"}, 
    { category : "Cat6", subcategory : "Scat6"}, 
    { category : "Cat6", subcategory : "Scat7"}, 
    { category : "Cat6", subcategory : "Scat8"}]; 

你可以看到,一個類可以有許多子類別。所以,我怎麼能同時顯示類別和子類別,使我沒有得到一個類別兩次

回答

0

我認爲你應該使用(子)聚集在這裏:

純蒙戈

db.myData.aggregate([{"$group": {_id: "$category", subcategoriess: { $addToSet: "$subcategory" }}}]); 

爲您提供:

{ "_id" : "cat3", "subcategoriess" : [ "subcat3.2", "subcat3" ] } 
{ "_id" : "cat2", "subcategoriess" : [ "subcat2" ] } 
{ "_id" : "cat1", "subcategoriess" : [ "subcat1.3", "subcat1.2", "subcat1" ]} 

然後你就可以遍歷您的結果得到的類別(_id),然後反覆子類別獲得每個類別下的列表。

流星:

var myDataCol = new Mongo.Collection('myData'); 
var pipeline = [ 
    {"$group": {_id: "$category", subcategoriess: { $addToSet: "$subcategory" } }} 
]; 
var result = myDataCol.aggregate(pipeline);