それをカプセル化するNode関数を作成しました:
// Will add a full-text regexp search to a query
// can be used like this:
// var query = myModel.model.find();
// addFullTextSearch( query, "firstName", mySearchString );
function addFullTextSearch( query, paramName, searchString ) {
if (searchString) {
var r = "";
var sss = searchString.split(" ");
if (sss.length<=1) { // only one word
r = sss[0];
} else {
// result should look like this: (?=.*comp)(?=.*abc)(?=.*300).*
for (var s in sss) {
r += "(?=.*" + sss[s] + ")";
}
r += ".*";
}
query.where(paramName).regex(new RegExp(r, 'i')); // "i" for case insensitivity
}
} // addFullTextSearch