在mongoose.find中逐字逐句

我有这样的路线:

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: [ ] 

当用户添加一个图像,他可以select添加标签,我试图find一个基于其标签的图像。

我已经添加了一个search框到一个页面。

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

有什么方法可以逐字search吗?

编辑1:
嗨,大家好,我不认为我解释正确的问题,我真的很累,对不起。

问题2:
当我在search框中input时,例如:
暴雨

我会得到的价值是“ Rain Florest ”作为一个句子,但是我想search那些标签为“ Rain ”或者“ Florest ”的图片,

最终编辑
我使用了search值,然后应用到选定的答案。

 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来匹配标签中的子string,如下所示:

 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 }); } }); }); 

尝试这个 :

  var arrayOfTags=['tag1','tag2','tag3'] Imgs.find({tags: {$in : arrayOfTags}}, function(err, f){ if(err){ console.log(err); } else { res.render("Images/index.ejs", { playlists: f }); } }); 

这将返回至less有一个标签在数组中的所有'图像'。 但是你可能想从这样的查询参数中获取数组:

  var arrayOfTags = req.query.tags