sql >> Base de Datos >  >> NoSQL >> MongoDB

MongooseJS/MongoDB busca la frase exacta

Creo que tiene razón en que verificar que el primer y el último carácter son comillas es probablemente lo más fácil. Sin embargo, la mangosta en sí misma no puede hacer esto. Sugiero preparar la consulta de antemano y también elegir el buscar apropiado método.

También podemos usar $regex operador para realizar la expresión regular dada contra la propiedad 'palabra clave' de cada documento en la colección.

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