Tôi nghĩ bạn đúng khi kiểm tra các ký tự đầu tiên và cuối cùng là dấu ngoặc kép có lẽ là dễ dàng nhất. Tuy nhiên bản thân cầy mangut không thể làm được điều này. Tôi khuyên bạn nên chuẩn bị trước truy vấn và chọn cả tìm thích hợp phương pháp.
Chúng tôi cũng có thể sử dụng $regex
toán tử để thực hiện biểu thức chính quy đã cho dựa trên thuộc tính 'keyword' của mỗi tài liệu trong bộ sưu tập.
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`
});