我正在尝试按movieId
领域对一些结果进行分组。
我不断收到错误消息。
代码如下:
router.get("/best-sellers2", (req, res) => {
Show.find({
'$expr': {
$group: {
_id: '$_MovieId',
count: { $sum: 1 }
}
}
}, {}).then(shows => {
console.log('got all shows of a specific movie');
console.log(shows);
res.json(shows);
});
});
这是错误:
(node:6524) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): MongoError: Unrecognized expression '$group'
(node:6524) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
有人知道出什么问题吗?
谢谢
答案 0 :(得分:1)
简单的聚合将起作用:
Show.aggregate([{
"$match" : {
"movieId": ObjectId("5b649c81e361853956b35900"),
}
},{
$group: {
"_id" : "$movieId",
"count" : {"$sum": 1}
}
}]);
输出:
{ "_id" : ObjectId("5b649c81e361853956b35900"), "count" : 2.0 }
希望这对您有所帮助。
让我知道您是否需要更具体的查询。
如果是的话,请在问题中添加更多代码,以了解数据是什么,输出结果是什么。