我在MongoDB中有以下文档
{
"product_id": "10001"
"product_name": "Banana"
"product_date": "2022-10-20T00:00:00.000+00:00"
"product_price": 255.15
"dates": {
"2022-10-10": {
"recorded_price": 195.15
},
"2022-10-15": {
"recorded_price": 230.20
},
"2022-10-20": {
"recorded_price": 255.20
}
}
}
我想添加一个名为"min_7day_price"
的新字段,它将从日期对象中选择过去7天的最低价格。
大概是这样的:
{
"product_id": "10001"
"product_name": "Banana"
"product_date": "2022-10-20T00:00:00.000+00:00"
"product_price": 255.15
"dates": {
"2022-10-10": {
"recorded_price": 195.15
},
"2022-10-15": {
"recorded_price": 230.20
},
"2022-10-20": {
"recorded_price": 255.20
}
},
"min_7day_price": 230.20
}
我尝试使用aggregation创建一个新字段,并将对象转换为数组,但无法过滤其中的值。
{
"min_7day_price": {
$objectToArray: "$dates"
}
}
1条答案
按热度按时间hjzp0vay1#
一个选项是使用更新与管道:
1.将字典转换为数组
1.使用
$reduce
,通过迭代和比较当前项,只保留其中的一项:$$this
到目前为止最好的项目:$$value
1.设置答案格式
了解它在playground example上的工作原理