Mongoose.js检查所有字段以匹配一个string

我正在研究一个用户可以在用户可以inputsearch框的地方。 它可以是名字,卡号,用户名等

有没有在mongoose.js中find所有字段的string?

就像是:

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,但是这只适用于在一个字段中search。

感谢您的时间。

  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 });