我刚刚开始学习MEAN堆栈,但我被卡住了。我需要将以下查询数据发送到前端。
router.get('/average', (req, res) => {
Employees.aggregate([
{ $match: { "position": "sen" } },
{
$group: {
_id: null,
average: {
$avg: "$salary"
}
}
}
]);
});
我已经尝试过这样做,但是没有用
router.get('/average', (req, res) => {
Employees.find(function (err, docs) {
res.json(docs);
}).aggregate([
{ $match: { "position": "sen" } },
{
$group: {
_id: null,
average: {
$avg: "$salary"
}
}
}
]);
});
答案 0 :(得分:2)
在第一个示例中,您没有将数据发送给响应,而在第二个示例中,语法有些混乱。
猫鼬返回一个Promise
和/或aggregate
值作为响应,因此下面的代码应该可以正常工作:
router.get('/average', (req, res) => {
Employees.aggregate([
{ $match: { position: 'sen' } },
{
$group: {
_id: null,
average: {
$avg: '$salary'
}
}
}
])
.then((result)=>{
res.json(result)
})
});
还可以查看猫鼬的文档:https://mongoosejs.com/docs/api/model.html#model_Model.aggregate