我有一条这样的路线:

router.get("/search/:value", function(req, res){
  Imgs.find({tags: req.params.value}, function(err, f){
    if(err){
      console.log(err);
    } else {
      res.render("Images/index.ejs", {
        playlists: f
      });
    }
  });
});


图像架构

    title: String,
    image: String,
    description: String,
    tags: [

    ]


当用户添加图像时,他可以选择向其添加标签,我正在尝试根据其标签查找图像。

我已经在页面上添加了搜索框。

问题:
我只能找到具有完全相同标签的图像。

有什么方法可以逐字搜索?

编辑1:
嗨,大家好,我认为我没有正确解释问题,我真的很累,抱歉。

问题2:
例如,当我在搜索框中输入内容时:
“雨弗洛雷斯特”

我将得到的值是“ Rain Florest”作为句子,但是我想搜索带有标签“ Rain”或/和“ Florest”的图像

最终编辑
我使用搜索值,然后将其应用于选定的答案。

var arrayOfTags = req.params.value;
Imgs.find({tags: new RegExp(arrayOfTags, 'i')}, function(err, f){
    if(err){
      console.log(err);
    } else {
      res.render("Images/index.ejs", {
        user: req.user,
        playlists: f
      });
    }
  });
});


感谢大伙们 !!

最佳答案

您可以使用regex来匹配标签中的子字符串,如下所示:



router.get("/search/:value", function(req, res){

  Imgs.find({tags: new RegExp(req.params.value, 'i')}, function(err, f){
    if(err){
      console.log(err);
    } else {
      res.render("Images/index.ejs", {
        playlists: f
      });
    }
  });
});

09-17 15:42