我尝试使用MongoDB来操作多个搜索字符串的搜索。
MongoDB 上的多个搜索字符串规则
db.meals.find({mealName: /fish/, mealName: /rice/, mealName: /spicy/})
我的挑战是Javascript中的对象不能在同一个对象中有相同的键。
我试着这样做:
const str = "fish rice spicy";
const transform = (searchInput) => {
const searchField = {}
let searchArray = searchInput.split(" ");
searchArray = searchArray.map((item)=>{
const fixKey = "mealName";
searchField[fixKey] = new RegExp(item);
})
return searchField;
}
console.log(transform(str)); // {mealName: /spicy/}
在这种情况下
如何在Javascript中符合MongoDB多搜索字符串的格式?
只需像这个一样使用mongoDB
$in
const strArray = "fish rice spicy".split(" ");
db.meals.find({ mealName: {$in: strArray } })
它将获取mealName
将与任何strArray
项匹配的所有记录。