我试图从用户搜索的内容中生成查询。我有一个字符串数组,我只想在 mongoDB 选择器中发送,我的问题是 /text/ 语法,它可以从 mongoDB 控制台完美运行,如下所示:
Items.find({ $or: [{name: /doc/}, {tags: /doc/}, {name: /test/}, {tags: /test/}] });
但我无法设法在 javascript 中编写相同的语法,我尝试了几个版本。
var mongoDbArr = [];
searchArray.forEach(function(text) {
mongoDbArr.push({name: /text/});
mongoDbArr.push({tags: /text/});
});
return Items.find({ $or: mongoDbArr});
但它只搜索“文本”而不是变量中的内容。像这样:
var mongoDbArr = [];
searchArray.forEach(function(text) {
mongoDbArr.push({name: "/" + text + "/"});
mongoDbArr.push({tags: "/" + text + "/"});
});
return Items.find({ $or: mongoDbArr});
但这并没有给我任何结果。我错过了什么?