Mongodb 与集合A联接,获取集合B的字段值之和,其中ID作为列表存储在集合C中

Mongodb 与集合A联接,获取集合B的字段值之和,其中ID作为列表存储在集合C中,mongodb,mongodb-query,aggregation-framework,Mongodb,Mongodb Query,Aggregation Framework,我有一个系统,销售用户创建订单,他们可以从他们创建的订单中获得佣金。 我正试图为他们创建的订单查找销售用户的总收入。 我正在努力为这个用例编写聚合查询 我有以下收藏 产品: //示例数据 [ {{u id:ObjectId(“1”),名称:“产品1”,价格:100}, {u id:ObjectId(“2”),名称:“产品2”,价格:120}, {{u id:ObjectId(“3”),名称:“产品3”,价格:150}, {{u id:ObjectId(“4”),名称:“产品4”,价格:200},

我有一个系统,销售用户创建订单,他们可以从他们创建的订单中获得佣金。 我正试图为他们创建的订单查找销售用户的总收入。 我正在努力为这个用例编写聚合查询

我有以下收藏

产品:

//示例数据
[
{{u id:ObjectId(“1”),名称:“产品1”,价格:100},
{u id:ObjectId(“2”),名称:“产品2”,价格:120},
{{u id:ObjectId(“3”),名称:“产品3”,价格:150},
{{u id:ObjectId(“4”),名称:“产品4”,价格:200},
]
销售用户:

//示例数据。佣金在先
[
{u id:ObjectId(“1”),名称:“用户1”,佣金:10},
{u id:ObjectId(“2”),名称:“用户2”,佣金:20},
]
订单:

//示例数据
[
{{u id:ObjectId(“1”),产品:[ObjectId(“1”),ObjectId(“2”)],销售用户:ObjectId(“1”)},
{{u id:ObjectId(“2”),产品:[ObjectId(“2”),ObjectId(“4”)],销售用户:ObjectId(“1”)},
{{u id:ObjectId(“3”),产品:[ObjectId(“1”),ObjectId(“3”)],销售用户:ObjectId(“2”)},
]
我需要一个查询,该查询返回salesUsers列表及其从下订单中获得的收入

[
{u id:ObjectId(“1”),姓名:“用户1”,收入:54},
{u id:ObjectId(“2”),姓名:“用户2”,收入:50},
]
获得收入的公式:

订单价格=该订单中产品价格的总和

收益=订单价格*用户佣金/100

谢谢你的帮助