【发布时间】:2014-06-04 12:17:56
【问题描述】:
我对 MongoDB 有点陌生,所以请耐心等待。
考虑一个由以下形式的文档构建的集合:
{
"_id" : ObjectId("538d87a36da0bab7ff1a827d"),
"resource_id", "some_id",
"server_ts" : 1401784227674.05214213,
"location" : [
34.8383953,
32.1098175
],
"__v" : 0
}
每个资源都以相对较快的速度添加文档,因此我最终得到了基于server_ts 的高分辨率时间戳位置(大约半秒分辨率)。
我希望能够根据资源 id 查询集合,但以较低的分辨率返回文档(例如 5 秒分辨率,而不是原来的 0.5)。
换句话说,我想将时间划分为 5 秒的范围,并且对于每个范围,获取一个属于该范围的文档(如果它确实存在)。
在聚合框架或标准查询接口中,mongodb 中是否有一种方便的方法可以根据此标准“采样”数据?
显然这可以在服务器端代码中完成(在我的例子中是 Node.js),但我仍然想知道是否有更好的选择。
谢谢!
【问题讨论】:
标签: mongodb mapreduce aggregation-framework