我有这样的路线:
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 ”作为一个句子,但我想搜索带有“ 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
});
}
});
});
谢谢你们!!
答案 0 :(得分:1)
您可以使用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
});
}
});
});

答案 1 :(得分:0)
试试这个:
var arrayOfTags = req.query.tags
这将返回所有'图像'在阵列中至少有一个标签。但您可能希望从查询参数中获取数组,如下所示:
{{1}}