Chr*_*ris 0 mongoose mongodb node.js aggregation-framework
我有一大堆数据,我试图从Mongo(节点js)中提取数据以呈现一些图形.
我需要从几千个用户中提取最近7天的数据.每个用户的特定数据格式如下:
{
"passedModules" :
[{
"module" : ObjectId("53ea17dcac1d13a66fb6d14e"),
"date" : ISODate("2014-09-17T00:00:00.000Z")
},
{
"module" : ObjectId("53ec5c91af2792f1112554e8"),
"date" : ISODate("2014-09-17T00:00:00.000Z")
},
{
"module" : ObjectId("53ec5c5baf2792f1112554e6"),
"date" : ISODate("2014-09-17T00:00:00.000Z")
}]
}
Run Code Online (Sandbox Code Playgroud)
目前我有一组非常混乱的查询正在运行,但我相信这可以完全与Mongo一起完成吗?
基本上,我需要以动态的方式将所有条目从7天前提取到现在.
是否有一种尝试和测试方式以这种方式处理动态日期,更具体地说是使用mongo中的聚合框架?聚合框架的原因是我需要在之后对这些进行分组.
非常感谢
此类查询的一般模式是:
// Compute the time 7 days ago to use in filtering the data
var d = new Date();
d.setDate(d.getDate()-7);
db.users.aggregate([
// Only include the docs that have at least one passedModules element
// that passes the filter.
{$match: {'passedModules.date': {$gt: d}}},
// Duplicate the docs, one per passedModules element
{$unwind: '$passedModules'},
// Filter again to remove the non-matching elements
{$match: {'passedModules.date': {$gt: d}}}
])
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1805 次 |
| 最近记录: |