【发布时间】:2018-06-22 08:38:10
【问题描述】:
我有一个问题,我的聚合查询没有向我的 res.json() 返回任何结果... 查询在 Node / Express 中看起来像这样:
exports.group_Produkt_by_month = function(req,res) {
Produkt.aggregate([
{
"$unwind":"$DemonstratorWerte"
},
{
"$group": {
"_id": {
"DemoID": "$DemonstratorWerte.Demonstrator", "Monat": {"$month":"$Erstellungszeitpunkt"}
},
"Anzahl":{"$sum":1}
}
},
{
"$project": {"DemoID": "$_id.DemoID", "Monat": "$_id.Monat", "Anzahl":1, "_id":0}
},
{
"$addFields": {
"Monat": {
"$let": {
"vars": {
"monthsInStrings": [, "Januar", "Februar", "Maerz", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember"]
},
"in": {
"$arrayElemAt": ['$$monthsInStrings','$Monat']
}
}
}
}
}
]).exec(function(err, prod) {
if (err) {
console.log(err);
}
else {
console.log(typeof prod);
console.log(prod[1])
console.log(prod);
res.json(prod);
}
}).then((res) => res.json())
}
当我在 mongo shell 中执行查询时,查询正确执行并返回文档列表。现在我想将文档作为 res.json(docs) 或类似于 webbrowser 中的结果文档数组返回给我......我该怎么做?我听说必须使用.toArray() 方法,但我不知道在 Node/Express 中如何以及在何处执行此操作...
【问题讨论】:
标签: mongodb aggregation-framework mean-stack