2016-12-16 1 views
0

여기mongoDB 집계 쿼리에서 NumberString을 Number로 변환하는 방법?

------- 물 컬러 모달 ------------------------------

------- 시작 쿼리 찾기 ------------------------------

var dataFineQuery = {_id : XXXXXXX}

waterColorModal.aggregate([ 
    { $match : dataFineQuery }, 
    { $project : { dateField : 1, tempArray : 1} }, 
    { $group : 
     { _id : { "$year" : "$dateField" }, 
     total : { 
      $sum : parseFloat({ "$arrayElemAt": [ "$tempArray", 1 ]}) 
       } 
    } 
], function (err, result) { 

console.log('-------------------------') 
console.log(result) 
console.log('-------------------------') 
) 

한 물 컬러 컬렉션

,
{ _id: 585392c8206ff324f955a4f0, 
    dateField : Sun Jan 01 2012 00:00:00 GMT+0530 (+0530), 
    tempArray: [ '2344', '23423', '23432', '32432', '2342' ] 
} 

tempArray [1] <, 매년 계산 총 가치 내가 원하는입니다 - 만

답변

1

을 어떤 제안 주석,

감사 총 수에 대한 고려 또는 답변자 JavaScript 방법을 수행 하시려면 map-reduce이 필요합니다. 시도해보십시오
코드 :

db.runCommand({ 
    mapReduce: "waterColorModal", 
    map: function() { 
     for (var i = 0; i < this.tempArray.length; i++) { 
      emit(new Date(this.dateField.toString()).getFullYear(), parseFloat(this.tempArray[i])); 
     } 

    },reduce: function(yearKey, totalValue) { 
     count = 0; 
     for (var index = 0; index < totalValue.length; ++index) { 
      count += totalValue[index]; 
     } 
     return count; 
    }, 
    out: { 
     inline: 1 
    } 
})