【发布时间】:2018-01-04 22:21:08
【问题描述】:
我已经找了几天的解决方案,但我无法得到结果。请帮帮我!
我在 MongoDB 中有一个数据:
{ name: 'apple', date: 2018-01-04T10:00:00.000Z, price: 100 }
{ name: 'apple', date: 2018-01-04T10:01:00.000Z, price: 101 }
{ name: 'apple', date: 2018-01-04T10:02:00.000Z, price: 102 }
{ name: 'apple', date: 2018-01-04T10:03:00.000Z, price: 103 }
{ name: 'apple', date: 2018-01-04T10:04:00.000Z, price: 102 }
{ name: 'apple', date: 2018-01-04T10:05:00.000Z, price: 104 }
{ name: 'cherry', date: 2018-01-04T10:00:00.000Z, price: 53 }
{ name: 'cherry', date: 2018-01-04T10:01:00.000Z, price: 55 }
{ name: 'cherry', date: 2018-01-04T10:02:00.000Z, price: 51 }
{ name: 'cherry', date: 2018-01-04T10:03:00.000Z, price: 51 }
{ name: 'cherry', date: 2018-01-04T10:04:00.000Z, price: 50 }
{ name: 'cherry', date: 2018-01-04T10:05:00.000Z, price: 52 }
{ name: 'melon', date: 2018-01-04T10:00:00.000Z, price: 133 }
{ name: 'melon', date: 2018-01-04T10:01:00.000Z, price: 132 }
{ name: 'melon', date: 2018-01-04T10:02:00.000Z, price: 136 }
{ name: 'melon', date: 2018-01-04T10:03:00.000Z, price: 137 }
{ name: 'melon', date: 2018-01-04T10:04:00.000Z, price: 138 }
{ name: 'melon', date: 2018-01-04T10:05:00.000Z, price: 140 }
我想通过一个查询得到这个结果。
{name: 'apple', price_last: 104, price_1m_ago: 102, price_5m_ago: 100}
{name: 'cherry', price_last: 52, price_1m_ago: 50, price_5m_ago: 53}
{name: 'melon', price_last: 140, price_1m_ago: 138, price_5m_ago: 133}
我尝试使用聚合,但无法以任何方式构建有效查询。
food.aggregate([
{
$group: {
_id: "$name",
price_last: {$last:"$price"},
}
}
]}
【问题讨论】:
标签: mongodb mongoose aggregation-framework