2012-02-28 85 views
0

以下是一个名为outputs的集合的记录。高效的mongodb查询来查找10K +记录集合中的平均时间?

db.outputs.findOne() 
{ 
    "_id" : ObjectId("4e4131e8c7908d3eb5000002"), 
    "company" : "West Edmonton Mall", 
    "country" : "Canada", 
    "created_at" : ISODate("2011-08-09T13:11:04Z"), 
    "started_at" : ISODate("2011-08-09T11:11:04Z"), 
    "end_at" : ISODate("2011-08-09T13:09:04Z") 
} 

以上只是一个文档。有大约10K文档,它会不断增加。

我需要的是找到过去1周(以created_at为单位)的平均小时数(以starts_at和end_at为单位)?

回答

1

现在,您需要查询需要平均的文档,可能只选择需要的字段(started_at和end_at)并在应用程序代码中进行计算。

如果您等待下一个主要版本的MongoDB,将会有一个新的聚合框架,它允许您构建一个聚合流水线来查询文档,选择字段并对它们进行计算,最后返回计算值(S)。它非常酷。

https://www.mongodb.org/display/DOCS/Aggregation+Framework