새로운 MongoDB 집계 기능을 사용하여 일부 통계를 날짜별로 집계하려고합니다. 아래는 내가 작업하고있는 문서 샘플, 시도한 코드 및 원하는 결과입니다. 집계 함수는 "UNDEFINED"를 리턴합니다. 누군가가 왜 그런지 말해 줄 수 있습니까? 둘째, 결과를 날짜별로 mm-dd-yyyy 형식으로 그룹화하는 집계 함수를 원합니다. 그러나 현재 작성된대로 코드는 전체 ISO 날짜별로 집계를 실행한다고 생각합니다. 누군가이 문제를 해결할 수있는 방법을 알려주실 수 있습니까?MongoDB 집계 함수 반환하지 않음
문서의 예
{
user: "2A8761E4-C13A-470E-A759-91432D61B6AF-25982-0000352D853511AF",
language: "English",
imageFileName: "F7A5ED9-D43C-4671-A5C6-F06C7E41F902-7758-000008371FB5B834",
audioFileName: "F6D5727D-9377-4092-A28A-AA900F02653D-7758-0000083749066CF2",
date: ISODate("2012-10-22T02:43:52Z"),
correct: "1",
_id: ObjectId("5084b2e8179c41cc15000001")
}
집계 함수
var getUserStats = function(user, language, callback) {
var guessCollection = db.collection('Guesses');
guessCollection.aggregate(
{ $match: {
user: user,
language: language,
}},
{ $sort: {
date: 1
}},
{ $project : {
user : 1,
language : 1,
date : 1,
correct : 1,
incorrect : 1,
} },
{ $unwind : "$language" },
{ $group : {
_id : "$date",
correct : { $sum : "$correct" },
incorrect : { $sum : "$incorrect" }
} }
, function(err, result){
console.log(result);
callback(result);
});
원하는 결과가 undefined
반환에 대한 귀하의 첫 번째 질문에 대해서는
{
"result" : [
//...snip...
{
"_id" : "2A8761E4-C13A-470E-A759-91432D61B6AF-25982-0000352D853511AF",
"correct" : 32,
"incorrect" : 17,
"date" : 2012-10-22
},
{
"_id" : "2A8761E4-C13A-470E-A759-91432D61B6AF-25982-0000352D853511AF",
"correct" : 16,
"incorrect" : 7,
"date" : 2012-10-23
}
],
"Ok" : 1
}
둘 모두를 수정하십시오. 나는 당신의 대답의 두 부분을 모두 시험해 보았고 아름답게 작동합니다. 매우 감사합니다! +1 – hughesdan