node.js - Mongoose 从聚合返回值
问题描述
我有一个包含以下字段的架构:
架构
Brote {
name:
content:
created:
likes:
}
我想把每个文档中的点赞数加起来。我的文件中有以下查询:
Index.js
app.get('/brotes', (req, res) => {
Brote.aggregate(
{ $group: {
_id: null,
total: { $sum: "$likes" } }
}
, function(err, result) {
console.log(result);
})
})
但是没有任何东西打印到控制台。当我在 mongo 服务器上运行命令时,它可以工作,我得到
{ "_id" : null, "total" : 7 }
这是预期的输出。有人可能会看到我哪里出错了吗?总的来说,我对 mongoDB 和 Web 开发还很陌生,所以我可能只是遗漏了一些明显的东西。谢谢!
编辑:SOLVED
错误实际上与查询本身无关(这是正确的),这是我用来获取的 URL 的问题。
解决方案
首先,您应该在聚合管道中创建一个数组,如聚合([
Broke.aggregate([
{
$group: {
_id: null,
total: { $sum: "$likes" } }
}
}
])
.then(result => {
console.log(result);
}).catch(err => {
//handle error here
});
推荐阅读
- javascript - 通过内容脚本在 XML 文件中注入 javascript
- angular - 具有指定日期/时间范围的角度日期时间选择器
- c# - EF Core 一对多还是多对多?用户<-->朋友
- r - 如果 RStudio 编辑器主题为深色,则 kableExtra 表的内容可见
- algorithm - 使用并发在文件中查找 k 个最常见的单词
- python - Python 和 SQL - 检查 Row 是否存在的最有效方法 - 如果不存在,则插入它
- android - Android 屏幕通知 LED
- php - PHP - preg_replace - 如果当前为空,则使用其他替换
- database - 表中基于两列的唯一行
- java - 如何在 QuickSelect 中实现重复