在我的 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
}
有什么想法吗?非常感谢!
aggregate
仅返回 AggregationCursor
。您可以自定义请求以及如何检索文档。
如果您只需要光标中的文档数组,请调用
aggregate([...]).toArray()
。
也可以从一个空管道开始,并使用光标提供的方法添加管道阶段(避免需要 $match、$project 等)。