如何在一个数据库中发送多个MongoDB查询

2fjabf4q  于 2023-04-11  发布在  Go
关注(0)|答案(1)|浏览(135)

我想从同一个集合中呈现2个MongoDB查询。

app.get("/", function(req, res) {
    Post.find({}, function(err, posts) {
        res.render("home", {
            latestPosts: posts
        });
    }).sort({ _id: -1 }).limit(1);

    Post.find({}, function(err, posts) {
        res.render("home", {
            otherPost: posts
        });
    }).sort({ _id: -1 }).limit(2);
});

第一个(latestPosts)渲染成功,但第二个(otherPost)显示错误为otherPost is not defined
请帮助我,对不起,如果我的问题是太容易了,因为我是一个新手在这个领域。

pvcm50d1

pvcm50d11#

你试图在同一个路由处理函数中两次呈现同一个视图(“home”),并且每次呈现调用都会覆盖前一次

  • 这就是为什么在第二次渲染调用中未定义otherPost变量的原因。*

试试这个方法。

app.get("/", function(req, res) {
      Post.find({}) 
        .sort({ _id: -1 })
        .limit(2)
        .exec(function(err, posts) {
          if (err) {
           console.log(err)
          }

      const latestPost = posts[0];
      const otherPost = posts[1];

      res.render("home", {
        latestPost: latestPost,
        otherPost: otherPost
      });
    });
});

相关问题