sql >> Databáze >  >> NoSQL >> MongoDB

MongooseJS/MongoDB hledá přesnou frázi

Myslím, že máte pravdu, že zkontrolovat první a poslední znak jsou uvozovky je asi nejjednodušší. Mangusta sama to však nedokáže. Doporučuji si dotaz předem připravit a také zvolit vhodné hledání metoda.

Můžeme také použít $regex operátor, který provede daný regulární výraz proti vlastnosti 'keyword' každého dokumentu v kolekci.

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. Node.js – Mongoose – Zkontrolujte, zda existuje kolekce

  2. MongoDB Unclean Shutdown – Selhání opravy

  3. yum instalace mongodb 3.2 se nezdaří

  4. Vypočítejte počet vnořených objektů pomocí C#