2015-06-30 65 views
0

我使用猫鼬和mongo来创建新项目。我正在寻找归还不同类别的json。我不熟悉聚合,我不确定是否正确使用。如何在mongodb中按名称对元素进行分组

houseSchema = new mongoose.Schema({ 
    id: Number, 
    name: String, 
    category: String, 
    }); 

House.aggregate(
     [ 
      { 
       $group: { 
        "_id": { 
         "category": "$category", 
         "name": "$name" 
        } 
       } 
      } 
     ]); 
//results 
[ { _id: { category: 'a', name: 'name1' } }, 
    { _id: { category: 'a', name: 'name2' } }, 
    { _id: { category: 'a', name: 'name3' } }, 
    { _id: { category: 'b', name: 'name4' } }, 
    { _id: { category: 'b', name: 'name5' } }, 
    { _id: { category: 'b', name: 'name6' } }, 
    { _id: { category: 'b', name: 'name7' } }, 
    { _id: { category: 'c', name: 'name8' } }, 
    { _id: { category: 'c', name: 'name9' } } ] 

我想有这样的事情

[ { _id: { category: 'a', name: ['name1', 'name2', 'name3'] } }, 
    { _id: { category: 'b', name: ['name4', 'name5', 'name6', 'name7'] } }, 
    { _id: { category: 'c', name: ['name8', 'name9' } } ] 
+2

使用' “名”:{$ addToSet: “$名”}' – styvane

+0

例外:无效运算符\'$ addToSet \' 我会看看这个! – youvere

回答

0

THX @ user3100115

House.aggregate(
     [ 
      { 
       $group: { 
        "_id": { 
          "category": "$category", 
        }, 
        "names": { 
          "$addToSet": "$name" 
        } 
       } 
      } 
     ]); 
相关问题