Node.js 如何使用aggregate计算mongodb对象数组中来自前一个对象和当前对象的数据?

Node.js 如何使用aggregate计算mongodb对象数组中来自前一个对象和当前对象的数据?,node.js,mongodb,mongoose,mongodb-query,aggregation-framework,Node.js,Mongodb,Mongoose,Mongodb Query,Aggregation Framework,我在mongodb中有以下数据 { "_id" : ObjectId("5641f77344aef29028a86d9b"), "timestamp" : "2015-09-21 00:01:34", "day_chan1" : NumberInt(0), "day_chan2" : NumberInt(0), "day_chan3" : NumberInt(65), "gatwayId" : "4437191001a3" } {

我在mongodb中有以下数据

  { 
    "_id" : ObjectId("5641f77344aef29028a86d9b"), 
    "timestamp" : "2015-09-21 00:01:34",  
    "day_chan1" : NumberInt(0), 
    "day_chan2" : NumberInt(0), 
    "day_chan3" : NumberInt(65), 
    "gatwayId" : "4437191001a3"
}
{ 
    "_id" : ObjectId("5641f77344aef29028a86d9c"), 
    "timestamp" : "2015-09-21 00:02:34",     
    "day_chan1" : NumberInt(0), 
    "day_chan2" : NumberInt(0), 
    "day_chan3" : NumberInt(97), 
    "gatwayId" : "4437191001a3"
}
{ 
    "_id" : ObjectId("5641f77344aef29028a86d9d"), 
    "timestamp" : "2015-09-21 00:03:34", 
    "day_chan1" : NumberInt(0), 
    "day_chan2" : NumberInt(0), 
    "day_chan3" : NumberInt(130), 
    "gatwayId" : "4437191001a3"
}

我想从给定的数据中计算三个额外的字段ph1,ph2,ph3,其中
ph1=day\u chan1 of current day\u chan2 of previous object
。在mongoose或纯mongodb中使用聚合可以做到这一点吗

@vmkcom它与您提到的问题不同。但是您的问题有答案-如果您想使用现有值,您需要遍历对象并计算您想要的值。它不能作为的单个可查询副本执行。“运行总计”需要聚合框架没有的“全局”。只有mapReduce可以在服务器上实现这一点,或者在响应时在客户端进行计算。这将使用javascript解决您的问题,这反过来会降低整个应用程序的速度。我有1300000个对象要处理,我需要一些非常快的东西,据我所知,聚合是最快的方法it@BlakesSeven谢谢,这和我需要的差不多