最初と最後の文字が引用符であるかどうかを確認するのがおそらく最も簡単だと思います。しかし、マングース自体はこれを行うことができません。事前にクエリを準備し、適切な findを選択することをお勧めします。 メソッド。
$regex
を使用することもできます コレクション内の各ドキュメントの「keyword」プロパティに対して指定された正規表現を実行する演算子。
var userInput = '"Apple"';
var term = userInput.trim();
var caseInsensitive = true; // = some user input?
var isExactTerm = (function() {
var firstChar = term[0];
var lastChar = term[term.length - 1];
return (firstChar === '"' && lastChar === '"');
}();
if(isExactTerm) {
// Remove quotes from the query
term = term.substr(1, str.length - 1);
}
var method = (isExactTerm) ? 'findOne': 'find';
var regexFlags = (caseInsensitive) ? 'i' : '';
var query = (isExactTerm) ? term : {$regex: new RegExp(term, regexFlags)};
Model[method]({
keyword: query
}).exec().then(function(result) {
// do stuff with `result`
}, function(err) {
// handle `err`
});