sql >> Database >  >> NoSQL >> MongoDB

MongooseJS/MongoDB zoek exacte woordgroep

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



  1. Haal gegevens op uit 2 collecties in mongodb in één zoekopdracht

  2. Kan MongoDB 3.0.2-service niet starten op CentOS 7

  3. Efficiënte POJO-toewijzing van/naar Java Mongo DBObject met Jackson

  4. Hoe te wachten tot het item op de lijst met mangoesten wordt gepusht?