如何从mongodb获取最新文章?

enyaitl3  于 2023-05-28  发布在  Go
关注(0)|答案(1)|浏览(109)

我正在开发一个评论应用程序。我面临的问题是最新的帖子/评论在底部。我想在第一个位置添加新的评论。你能告诉我怎么做吗?谢谢你。

import db from "@/utils/db";
import Comment from "@/models/Comment";

const handler = async (req, res) => {

  await db.connect()

  if (req.method !== 'GET') {
    return 
  }
  
  const comments = await Comment.find({})

  if(!comments) {
    return res.status(200).json({
      message: 'Comment section is EMPTY!'
    })
  }

res.status(200).send({ comments })
}

export default handler

我的MongoDB数据库看起来像这样:

_id: 646be098d2de11097a4b62d6
user: 646bc68e673a78c472646e5e
userName:"john"
comment:"ffffffffffffffff"
like:0
createdAt:2023-05-22T21:37:28.018+00:00
updatedAt:2023-05-22T21:37:28.018+00:00
y4ekin9u

y4ekin9u1#

要在第一个位置添加新的注解,您需要修改代码,在发送响应之前根据创建日期(createdAt)以降序排列sort注解。

import db from "@/utils/db";
    import Comment from "@/models/Comment";
    
    const handler = async (req, res) => {
      await db.connect();
    
      if (req.method !== 'GET') {
        return;
      }
    
      const comments = await Comment.find({}).sort({ createdAt: -1 });
    
      if (!comments || comments.length === 0) {
        return res.status(200).json({
          message: 'Comment section is EMPTY!'
        });
      }
    
      res.status(200).send({ comments });
    };
    
    export default handler;

sort()方法用于Comment.find({})查询,根据createdAt字段按降序对注解进行排序(-1表示降序)。这样可以确保最新的注解出现在comments数组的开头。

相关问题