MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

MongooseJS/MongoDB recherche la phrase exacte

Je pense que vous avez raison de dire que vérifier que les premier et dernier caractères sont des guillemets est probablement le plus simple. Cependant, la mangouste elle-même ne peut pas le faire. Je suggère de préparer la requête à l'avance et de choisir également la trouver appropriée méthode.

Nous pouvons également utiliser le $regex opérateur pour exécuter l'expression régulière donnée par rapport à la propriété 'keyword' de chaque document de la collection.

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