TypeORM MongoDB 聚合

问题描述 投票:0回答:1

在我的 NestJS 项目中,我尝试使用聚合,但我无法让它工作,并且文档非常稀缺。

我的实体看起来像这样:

@Entity()
export class MyItem {
    
   @Column()
   risktype?: string;
   ...
}

这就是服务:

getTopNRiskNames$(n: number) {
    return this.myitemRepository.aggregate([
        {
            $group: {
                _id: { risktype: "$risktype" },
                $count: { $sum: 1 }
             }
        }
     ])        
}

这是控制器:

@Get('getTopNRiskNames/:n')
async getTopNRiskNames(@Param('n') n: number) {
    return  this.myItemService.getTopNRiskNames$(n);
}

但是当我用邮差打电话时,我只是得到这样的信息:

{
    "_events": {},
    "_eventsCount": 0
}

有什么想法吗?非常感谢!

mongodb typeorm nestjs-typeorm
1个回答
0
投票

aggregate
仅返回
AggregationCursor
。您可以自定义请求以及如何检索文档。

如果您只需要光标中的文档数组,请调用

aggregate([...]).toArray()

也可以从一个空管道开始,并使用光标提供的方法添加管道阶段(避免需要 $match、$project 等)。

© www.soinside.com 2019 - 2024. All rights reserved.