MongooseJS / MongoDB busca la frase exacta

Quiero permitir que mis usuarios busquen palabras clave exactas, por ejemplo, se le indica al usuario que incluya palabras clave como “Apple” solo buscaría la palabra clave exacta de Apple , mientras que sin las comillas buscaría

*Apple* 

¿Cómo puedo escribir estas consultas en MongooseJS? ¿Supongo que debería buscar citas al principio y al final de la cadena?

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

También podemos usar el operador $regex para realizar la expresión regular dada en contra de 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` });