2015-09-29 53 views
0

我有一個聚集查詢使用貓鼬使Node.js腳本設置從比賽階段返回現場如下:在最後階段的項目

TestResult.aggregate([ 
       { $match: 
        { 
         Probe: parseInt(fieldsToSearch.probe), 
         TimeStamp: { 
          "$gte" : fieldsToSearch.queryBeginTimeStamp , 
          "$lt" : fieldsToSearch.queryEndTimeStamp 
         } 
        } 
       }, 
       { $group: 
        { 
         _id: "$Probe", 
         min : { 
          $min: "$Value" 
         }, 
         max : { 
          $max: "$Value" 
         }, 
         avg : { 
          $avg: "$Value" 
         } 
        } 
       }, 
       { $project: 
        { 
         probe:"$_id", 
         _id: 0, 
         min: 1, 
         max: 1, 
         avg: 1, 
         TimeStamp : 1//"$TimeStamp" 

        } 

       }]) 

然而,在過去的$項目的階段,我還想返回我用來匹配記錄的原始TimeStamp字段。但是,獲得的結果沒有TimeStamp字段。我如何從早期階段到最後一個項目階段取得領域?

回答

1

你應該給你收集更多的信息,但看着管道,你可能要添加2場組成的_id - 探頭和時間戳,在小組賽:

$group: 
{ 
    _id: { 
     Probe: "$Probe", 
     TimeStamp: "$TimeStamp" 
    }, 
    min : { 
     $min: "$Value" 
    }, 
    max : { 
     $max: "$Value" 
    }, 
    avg : { 
     $avg: "$Value" 
    } 
} 

否則你無法在流水線中進一步獲取時間戳字段。