2013-02-15 76 views

回答

0

我已经能够得到下面的代码工作。

db.main.find() 
    .forEach(function(doc){ 
     //print('got1 id: ' + doc._id); 
     db.main.find({'_id': {$gt: doc._id}, user: doc.user}) 
       .sort({'_id': 1}) 
       .limit(1) 
       .forEach(function(doc2){ 
        //print('got2 id: ' + doc2._id); 
        print(doc._id + ': ' + (ISODate(doc2.startT).getTime() - ISODate(doc.startT).getTime())); 
       }) 
     } 
    ); 

可能有其他的方式来解决这个问题,我也有兴趣,因为我有很多东西需要学习。

0

嗯,我想一个简短的答案是,这可能不会是你可以使用查询计算的东西。你的标签表明你可能正在寻找一个查询来计算这个,但我认为这是不可能的。

它也听起来不像是地图缩减在这里可以工作。

如果您确实需要计算每个事件之间的差异,那么您可能需要考虑对这些值进行计算并将结果存储在某处。或者,当您插入每个新事件并将它们存储在某处时,您可以预先计算它们。

无论如何,这听起来像是你需要编写一些计算它自己的议程并将结果存储在某处的结果。