2017-02-09 2 views
0

Я пытаюсь извлечь агрегированные данные из MongoDB для каждого файла каждой версии, где платформа может выигратьИспользование драйвера Javascript MongoDB для агрегации

Мои данные имеет следующий формат

[ 
{ "_id" : { "platform" : "mac", "filename" : "f1.json", "version" : "1.4.14" }, "avgSecs" : 15 }, 
{ "_id" : { "platform" : "win", "filename" : "f2.json", "version" : "3000.0.0_developer" }, "avgSecs" : 1217 }, 
{ "_id" : { "platform" : "win", "filename" : "f3.json", "version" : "1.4.14" }, "avgSecs" : 1711 }, 
{ "_id" : { "platform" : "win", "filename" : "f3.json", "version" : "3000.0.0_developer" }, "avgSecs" : 1191 } 
] 

Мой код выглядит следующим образом

[ {$sort:{filename:1}},{$match:{platform:"win"}},{ $group:{ _id: {filename:"$filename", version:"$version"}, avgSecs: {$avg:"$int_secs"} } }] 

который отправить MongoDB с помощью JS APIs следующим

 collection.aggregate(aggQuery).toArray(function(err,docs){ 
      assert.equal(null,err) 
      resolve(docs); 
     }) 

, но я не получаю разобранные и агрегированные данные, но полные данные, как есть, из db.

Я проверил тот же самый агрегатный запрос, который отлично работает с оболочкой mongodb. Я не уверен, в чем проблема с JS api. Правильно ли я использую его

ответ

1

ОК нашел.

AggQuery был отправлен как строка, пока ожидал объект Array. Создал объект Array и теперь результаты ожидаются.

Смежные вопросы