我正在尝试生成一个用户报告,该报告基本上是对系统中所有用户的提取,并添加每个用户拥有的“订单”和“项目”的总数。 当用户没有太多订单/项目但是如果某些用户有很多项目我得到错误时,下面的查询非常有效:
与{$ match:{$ and:[{owner:{$ eq:...}},{}]}}匹配的项目中的文档总大小超过了最大文档大小
查询是:
db.getCollection('users').aggregate([
{$match: {}},
{$skip: 0},
{$limit: 50},
{$lookup: {from: 'projects', localField: '_id', foreignField: 'owner', as: 'projects'}},
{$addFields: {projects: {$size: "$projects"}}},
{$lookup: {from: 'orders', localField: '_id', foreignField: 'user', as: 'orders'}},
{$addFields: {orders: {$size: "$orders"}}}
])
有没有解决方法?我知道我可以使用“展开”和“分组”步骤,但不确定它将如何与两个订单和项目一起使用。
MongoDB版本3.4
感谢。