计算查找结果

时间:2017-09-03 13:44:22

标签: mongodb aggregation-framework

我正在尝试生成一个用户报告,该报告基本上是对系统中所有用户的提取,并添加每个用户拥有的“订单”和“项目”的总数。 当用户没有太多订单/项目但是如果某些用户有很多项目我得到错误时,下面的查询非常有效:

  

与{$ 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

感谢。

0 个答案:

没有答案