通过标题搜索mongodb而不是ID



我试图让我的路线从URL中删除博客应用程序的标题。我使用id工作,但无法弄清楚标题。我知道我不能做findById(),而是使用find()。我该如何定制查询以找到标题。

路由

  app.get("/blogs/:title", function(req, res) {
    Blog.find(req.params.title, function(err, foundBlog){
        if(err){
            res.redirect("/blogs");
        } else {
            res.render("show", {blog: foundBlog});
        }
    });
  });

架构

var blogSchema = new mongoose.Schema({
    title: String,
    image: String,
    body: String,
    created: {type: Date, default: Date.now},
    author: {
      id: {
         type: mongoose.Schema.Types.ObjectId,
         ref: "User"
      },
      email: String
   }
});

您需要将带有架构键的对象传递到find()方法:

  app.get("/blogs/:title", function(req, res) {
    Blog.find({ title: req.params.title }, function(err, foundBlog){
        if(err){
            res.redirect("/blogs");
        } else {
            res.render("show", {blog: foundBlog});
        }
    });
  });

最新更新