【发布时间】:2020-02-27 14:25:04
【问题描述】:
很抱歉,我确定这是一个新手问题,但经过几个讲台后,我完全不知道如何解决这个问题。
我目前有两个系列,一个是orders,另一个是offers。报价基本上是订单的报价报价(由_id<->orderId链接)。
订单集合示例:
{
"_id" : ObjectId("59311d8ba0ea6500113df5d6"),
"deleted" : true,
"updated" : ISODate("2017-06-02T08:20:47.772+0000"),
"created" : ISODate("2017-06-02T08:10:51.401+0000"),
"name" : "Sicherungsbolzen",
"state" : "active"
}
{
"_id" : ObjectId("59311ee2a0ea6500113df5d8"),
"deleted" : false,
"updated" : ISODate("2017-06-02T08:16:34.911+0000"),
"created" : ISODate("2017-06-02T08:16:34.911+0000"),
"name" : "Mitnehmerstein SK50 ",
"state" : "active"
}
报价集合示例:
{
"_id" : ObjectId("59311ee2a0ea6500113df5d8"),
"deleted" : false,
"updated" : ISODate("2019-11-08T13:18:34.872+0000"),
"created" : ISODate("2019-11-08T06:54:14.072+0000"),
"orderId" : ObjectId("5db6c679d8499800286ff64a"),
"proposal" : {
"price" : NumberInt(19800),
"currency" : "CUR51",
"deliveryDate" : NumberInt(21),
"files" : [
]
},
}
{
"_id" : ObjectId("59311d8ba0ea6500113df5d6"),
"deleted" : false,
"updated" : ISODate("2019-11-08T10:11:48.112+0000"),
"created" : ISODate("2019-10-29T11:31:05.980+0000"),
"orderId" : ObjectId("5db74034d849980028701a95"),
"proposal" : {
"price" : 31.78,
"currency" : "CUR48",
"deliveryDate" : NumberInt(1),
"files" : [
]
}
}
{
"_id" : ObjectId("59311d8ba0ea6500113df5d6"),
"deleted" : false,
"updated" : ISODate("2019-11-08T08:37:04.354+0000"),
"created" : ISODate("2019-11-08T08:37:04.354+0000"),
"orderId" : ObjectId("5db80b84ed142100263a5088"),
"proposal" : {
"price" : NumberInt(2345),
"deliveryDate" : NumberInt(18),
"currency" : "CUR48",
"files" : [
]
},
}
{
"_id" : ObjectId("59311d8ba0ea6500113df5d6"),
"deleted" : false,
"updated" : ISODate("2019-11-15T14:32:15.958+0000"),
"created" : ISODate("2019-11-06T14:42:23.492+0000"),
"orderId" : ObjectId("5dc03382751ecc002899e1fa"),
"proposal" : {
"price" : NumberInt(86400),
"currency" : "CUR48",
"deliveryDate" : NumberInt(90),
"files" : [
]
}
}
{
"_id" : ObjectId("59311d8ba0ea6500113df5d6"),
"deleted" : false,
"updated" : ISODate("2019-11-22T23:10:07.056+0000"),
"created" : ISODate("2019-11-06T20:09:20.706+0000"),
"orderId" : ObjectId("5dc03382751ecc002899e1fa"),
"proposal" : {
"price" : NumberInt(57419),
"currency" : "CUR48",
"deliveryDate" : NumberInt(27),
"files" : [
]
}
}
{
"_id" : ObjectId("59311d8ba0ea6500113df5d6"),
"deleted" : false,
"updated" : ISODate("2019-11-08T08:52:18.910+0000"),
"created" : ISODate("2019-11-08T08:52:18.910+0000"),
"orderId" : ObjectId("5dc05c0a751ecc00289a0187"),
"proposal" : {
"price" : NumberInt(9900),
"deliveryDate" : NumberInt(35),
"currency" : "CUR48",
"files" : [
]
},
}
{
"_id" : ObjectId("59311d8ba0ea6500113df5d6"),
"deleted" : false,
"updated" : ISODate("2019-11-08T09:39:12.383+0000"),
"created" : ISODate("2019-11-08T09:39:12.383+0000"),
"orderId" : ObjectId("5dc47fb10a1f7c00262763e3"),
"proposal" : {
"price" : NumberInt(79),
"deliveryDate" : NumberInt(7),
"currency" : "CUR48",
"files" : [
]
},
}
{
"_id" : ObjectId("59311ee2a0ea6500113df5d8"),
"deleted" : false,
"updated" : ISODate("2019-11-08T09:45:41.392+0000"),
"created" : ISODate("2019-11-08T09:45:41.392+0000"),
"orderId" : ObjectId("5dc480ab751ecc00289b32c7"),
"proposal" : {
"price" : NumberInt(240),
"deliveryDate" : NumberInt(7),
"currency" : "CUR48",
"message" : "Hi Alex, I saw you put several RFQs in the platform,attached quotation for reference.If you have any question,please contact me at engineer07@top-rp.cn. Looking forward to your feedback.By the way,may I know your email?\n\nRebecca",
"files" : [
]
},
}
{
"_id" : ObjectId("59311ee2a0ea6500113df5d8"),
"deleted" : false,
"updated" : ISODate("2019-11-08T09:43:29.928+0000"),
"created" : ISODate("2019-11-08T09:43:29.928+0000"),
"orderId" : ObjectId("5dc482430a1f7c00262763e6"),
"proposal" : {
"price" : NumberInt(390),
"deliveryDate" : NumberInt(7),
"currency" : "CUR48",
"message" : "Hi Alex, I saw you put several RFQs in the platform,attached quotation for reference.If you have any question,please contact me at engineer07@top-rp.cn. Looking forward to your feedback.By the way,may I know your email?\n\nRebecca",
"files" : [
]
},
}
{
"_id" : ObjectId("59311ee2a0ea6500113df5d8"),
"deleted" : false,
"updated" : ISODate("2019-11-08T06:56:15.346+0000"),
"created" : ISODate("2019-11-08T06:56:15.346+0000"),
"orderId" : ObjectId("5dc4843b0a1f7c00262763ed"),
"proposal" : {
"price" : NumberInt(3),
"deliveryDate" : NumberInt(7),
"currency" : "CUR48",
"files" : [
]
},
}
我有一个主要目标: 导出将显示每个报价的“平均”价格的 Excel。也就是说,如果一个订单收到 3 个报价(20、30、40),它将是:OrderID, 30(30 是 20、30、40 的平均值)。
在这种情况下,有 2 个订单(59311d8ba0ea6500113df5d6 和 59311ee2a0ea6500113df5d8),它必须显示:
ORDERID, AVERAGE OF PRICE
59311ee2a0ea6500113df5d8, 99 (average all the proposal.price for each quote of this order)
59311d8ba0ea6500113df5d6, 129 (average all the proposal.price for each quote of this order)
任何提示、技巧、帮助?
提前致谢
【问题讨论】:
-
请提供两种情况下的样本数据和预期结果
-
being 90 the average of 20, 30, 40是错字还是您的意思是sum? -
这确实是一个错字对不起。现在更正它。
标签: mongodb aggregation-framework lookup