2016-08-12 53 views
-1

我有一些文件的结构是这样的:搜索数据使用聚合

{ 
    "_id": Mongoid, 
    "relate_id": 1, 
    "userid": user1 
}, 
{ 
    "_id": Mongoid, 
    "relate_id": 2, 
    "userid": user2 
}, 
{ 
    "_id": Mongoid, 
    "relate_id": 1, 
    "userid": user3 
} 

我的预期结果是低于:

{ 
    "relate_id": 1 
    "userid": [user1, user3] 
}, 
{ 
    "relate_id": 2 
    "userid": [user2] 
} 

我可以搜索使用一个aggregate()查询这个结构呢?

回答

1

是的,你需要使用group聚集阶段,使用push操作,来填充你的用户ID列表

db.collection.aggregate([ 
    {$group: {_id: "$relate_id", userid: {"$push": "$userid"}}}, 
] 
)