我有一条这样的路线:
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
});
}
});
});