如何在Javascript Object中创建重复密钥以匹配MongoDB多搜索字符串的规则



我尝试使用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项匹配的所有记录。

最新更新