Mongodb Mongo“;顶级关键字移动器“;和减法的绝对和

Mongodb Mongo“;顶级关键字移动器“;和减法的绝对和,mongodb,aggregation-framework,Mongodb,Aggregation Framework,我一直在努力计算“最热门的关键词移动者”。例如,日期范围为2013-12-19至2013-12-23的以下文件: { "domain" : "www.mytestingdomain.com", "keyword" : "elegant", "google_rank" : 10, "date" : ISODate("2013-12-19T00:00:00Z") } { "domain" : "www.mytestingdomain.com", "ke

我一直在努力计算“最热门的关键词移动者”。例如,日期范围为2013-12-19至2013-12-23的以下文件:

{
    "domain" : "www.mytestingdomain.com",
    "keyword" : "elegant",
    "google_rank" : 10,
    "date" : ISODate("2013-12-19T00:00:00Z")
}
{
    "domain" : "www.mytestingdomain.com",
    "keyword" : "elegant",
    "google_rank" : 5,
    "date" : ISODate("2013-12-20T00:00:00Z")
}
{
    "domain" : "www.mytestingdomain.com",
    "keyword" : "elegant",
    "google_rank" : 1,
    "date" : ISODate("2013-12-21T00:00:00Z")
}
{
    "domain" : "www.mytestingdomain.com",
    "keyword" : "elegant",
    "google_rank" : 5,
    "date" : ISODate("2013-12-22T00:00:00Z")
}
{
    "domain" : "www.mytestingdomain.com",
    "keyword" : "elegant",
    "google_rank" : 1,
    "date" : ISODate("2013-12-23T00:00:00Z")
}
显示特定关键字“优雅”在此特定日期范围内的移动方式

我的问题(使用Mongo聚合框架):

有没有一种方法可以计算这些运动?例如:

10 - 5 = 5
5 - 1 = 4
1 - 5 = -4 --> abs --> 4
5 - 1 = 4
---------------------------
absolute total: 5 + 4 + 4 + 4 = 17 --> in this case "seventeen" is the absolute sum of moves that I am looking for.

提前谢谢

对于您当前的模式,您试图实现的计算类型必须从应用程序代码开始,通过迭代正常的
find()
的结果来计算所需的总和

聚合框架(在MongoDB 2.4中)不支持引用在同一管道步骤中处理的先前文档的查询。MongoDB问题跟踪器中有一个开放的功能建议,您可以上传/观看:

如果您想调整模式以使用聚合框架进行计算,您可以包括一个额外字段,如
previous\u google\u rank
,以便可以计算每个文档的排名差异。不过,通过应用程序代码进行计算将是更有效、更明显的选择