我如何计算 mongoDB 中的所有用户和帖子

Posted

技术标签:

【中文标题】我如何计算 mongoDB 中的所有用户和帖子【英文标题】:how can i count all users and posts in mongoDB 【发布时间】:2021-10-27 05:18:42 【问题描述】:

我想统计网站的用户、帖子和 cmets,并将数据发送到仪表板,仪表板显示所有用户和帖子的计数。我无法解决这个问题。这是我的代码

     app.get('/', async (req,res)=>
       const query = User.find()
       const posts = Post.find()
      const user = await query.countDocuments((err,count)=>
           if(err)
               console.log(err)
           else
               return count;
           
       )
   const post = await posts.countDocuments((err , posts)=>
    if(err)
        console.log(err)
    else
        return posts;
    
   )
console.log(post)
   res.render('dashboard',userCount: user , posts:post)

)

【问题讨论】:

【参考方案1】:

您可以使用聚合找到文档的数量:

const postCount = await posts.aggregate([$group: 
  _id : null,
  count :  $sum : 1
, $project: 
  _id : 0
]);

你会得到如下输出: count : 11

说明

$group 阶段将选择不同的记录。当设置为 null 时,它会选择集合中的所有记录。

$projectstage 将选择我们需要输出的字段(由于我们只需要计数,因此可以消除其他字段)

【讨论】:

以上是关于我如何计算 mongoDB 中的所有用户和帖子的主要内容,如果未能解决你的问题,请参考以下文章

通过浏览他/她的所有帖子 MongoDB 获取该用户收到的总喜欢数

使用 mongodb 在用户的所有帖子中获取用户的点赞数

查询一个对象数组并返回一个对象 - mongodb

MongoDB中喜欢的EnsureIndex

如何从存储在 mongodb 中的对象中获取日期?

如何确定帖子是不是被 Mongoose 的用户点赞