2013-02-15 61 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

嗯,我想一個簡短的答案是,這可能不會是你可以使用查詢計算的東西。你的標籤表明你可能正在尋找一個查詢來計算這個,但我認爲這是不可能的。

它也聽起來不像是地圖縮減在這裏可以工作。

如果您確實需要計算每個事件之間的差異,那麼您可能需要考慮對這些值進行計算並將結果存儲在某處。或者,當您插入每個新事件並將它們存儲在某處時,您可以預先計算它們。

無論如何,這聽起來像是你需要編寫一些計算它自己的議程並將結果存儲在某處的結果。