【发布时间】:2013-03-08 05:03:47
【问题描述】:
我有一些数据存储在 mongodb 集合中,类似于:
{"_id": 1, "category": "food", "name": "chips", "price": 1.50, "effectiveDate": ISODate("2013-03-01T07:00:00Z")}
{"_id": 2, "category": "food", "name": "chips", "price": 1.75, "effectiveDate": ISODate("2013-03-05T07:00:00Z")}
{"_id": 3, "category": "food", "name": "chips", "price": 1.90, "effectiveDate": ISODate("2013-03-10T07:00:00Z")}
{"_id": 4, "category": "beverage", "name": "pop", "price": 2.00, "effectiveDate": ISODate("2013-03-01T07:00:00Z")}
{"_id": 5, "category": "beverage", "name": "pop", "price": 2.25, "effectiveDate": ISODate("2013-03-05T07:00:00Z")}
{"_id": 6, "category": "beverage", "name": "pop", "price": 1.80, "effectiveDate": ISODate("2013-03-10T07:00:00Z")}
在 mongodb 中,我将如何编写一个查询来返回在特定日期处于活动状态的文档,按类别分组?
如果我指定 2013 年 3 月 6 日,我希望看到结果:
{"_id": 2, "category": "food", "name": "chips", "price": 1.75, "effectiveDate": ISODate("2013-03-05T07:00:00Z")}
{"_id": 5, "category": "beverage", "name": "pop", "price": 2.25, "effectiveDate": ISODate("2013-03-05T07:00:00Z")}
我是 mongo 的新手,我一直在尝试使用 group、aggregate 和 mapreduce 来做到这一点,但一直在绕圈子。
【问题讨论】:
-
您想对价格等其他字段做什么?最高价?最低价?
-
我不需要进行任何计算。我只是在寻找在特定时间点适用的文件。
标签: mongodb date mapreduce aggregation-framework