Ik denk dat je gelijk hebt dat het controleren van de eerste en laatste tekens aanhalingstekens zijn, waarschijnlijk het gemakkelijkst is. De mangoest zelf kan dit echter niet. Ik raad aan om de zoekopdracht van tevoren voor te bereiden en ook de juiste zoekopdracht te kiezen methode.
We kunnen ook de $regex
. gebruiken operator om de gegeven reguliere expressie uit te voeren tegen de eigenschap 'trefwoord' van elk document in de verzameling.
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`
});