sql >> Database teknologi >  >> NoSQL >> MongoDB

MongooseJS/MongoDB søge nøjagtig sætning

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



  1. udløb redis cache-nøgle på bestemte tidspunkter i stedet for varighed

  2. Sådan holder Redis-serveren kørende

  3. Brug af MongoDB som datakilde i GoLang

  4. $unset er tom. Du skal angive et felt som sådan:{$unset:{<field>:...}}