首页 > 解决方案 > 如何在 mongoose 和 mongodb 中显示所有数据并过滤一个?

问题描述

我正在尝试从 mongo 数据库中获取所有数据,但我想专门过滤一个。

我想做的是。让某人点击我的投资组合,向他们展示我创建的内容的详细信息。但在左侧边栏上,我想展示我所做的其他工作。检查图片,您应该会更好地理解。

 router.get('/portfolio/:id', function(req, res, next) {
  Work.findById(req.params.id, function(err, foundWork) {
    console.log(foundWork)

    if (err) {
      console.log(err);
    } else {
      res.render('portfolio', {
        title: 'Portfólio',
        work: foundWork
      });
    }
  });
});

图片

FindById 只显示一个特定项目的结果。

谢谢你的帮助

已编辑------------------------------------------------- ----

所以我更改了代码以从数据库中获取所有数据,并通过 id 过滤我需要的项目。我无法将数据解析到 ejs。当我在 nodejs 中 console.log 数据时,我得到数据。当我控制台登录 ejs 时,我得到未定义。

这是我在nodejs中得到的图片。

控制台日志

我注意到当我遍历过滤的项目时,我得到了我需要的所有数据。当我将一个项目解析为 ejs 时,我认为循环数据是不正确的。

标签: node.jsmongodbmongooseejs

解决方案


所以我自己想出了这个。

我按照用户givehug所说的做了。它起作用了,但是尽管只有一个项目,但我不得不在 ejs 中再次遍历过滤的项目。EJS 不知道过滤后的数组中剩下多少项目,所以我循环了一遍。拿出一件物品,然后我渲染它并且它起作用了。


推荐阅读