Jeg tror, du har ret i, at det nok er nemmest at tjekke første og sidste tegn er anførselstegn. Men mangust selv kan ikke gøre dette. Jeg foreslår, at du forbereder forespørgslen på forhånd og også vælger det passende find metode.
Vi kan også bruge $regex
operator til at udføre det givne regulære udtryk mod "søgeord"-egenskaben for hvert dokument i samlingen.
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`
});