我正在开发一个proyect,用户可以在其中输入他想要从用户那里找到的任何内容。它可以是名称,卡片ID,用户名等。
mongoose.js中有什么内容可以在所有字段中查找字符串吗?
类似的东西:
var user_input = "le";
Users.find({$contains: user_input}, function(error, usersFound){
if(!error) console.log('I found users!', usersFound);
//usersFound contains all the users that has "le" in at least one field
});
我发现已经有一个与RegEx相匹配的选项,但仅限于在一个字段中搜索。
感谢您的时间。
答案 0 :(得分:1)
var user_input = new RegExp("le", 'i');
var queryArray = [];
for (var property in Users.schema.paths) {
if (Users.schema.paths.hasOwnProperty(property) && Users.schema.paths[property]["instance"] === "String") {
queryArray.push(JSON.parse('{\"' + property + '\": \"' + user_input + "\"}"))
}
}
var query = {
$or: queryArray
};
Users.find(query, function(error, usersFound){
if(!error) console.log('I found users!', usersFound);
//usersFound contains all the users that has "le" in at least one field
});