2016-12-08 4 views
1

Я пытаюсь реализовать простой запрос подстроки с помощью loopback api для поля typeahead, возможно, я слепой, но я искал все для ответа на этот вопрос.Nonanchored Substring Query поле с Loopback API

Я хотел бы предоставить его подстрокой и вернуть все бренды с этой подстрокой в ​​названии.

Например, этот запрос /api/brands/search?q=tas вернется.

[{ 
    "brandName": "TastyKakes", 
    "id": "4" 
}, 
{ 
    "brandName": "FantasticPastries", 
    "id": "10" 
}] 

Я написал remoteMethod, чтобы справиться с этим, но я совсем не могу получить его, чтобы вернуть данные Ищу

Brand.search = function (q, callback) { 
    var pattern = new RegExp(q, "i"); 
    var brands = Brand.find({ 
     where: { 
     brandName: { 
      like: pattern 
     } 
     } 
    }, function (err, data) { 
     callback(err, data) 
    }) 
    }; 

Я новичок в LoopBack/Node/Express, но я исходя из фона Python/Django, и делать что-то подобное в django довольно просто. Я чувствую, что мне что-то не хватает.

ответ

0

Я предполагаю, что это не может быть сделано ILIKE %% ни одного случая, в котором положение, как это не нуждается в шаблоне

Brand.search = function (q, callback) { 
var pattern = "%s" + q + "%s"; 
var brands = Brand.find({ 
    where: { 
    brandName: { 
     ilike: pattern 
    } 
    } 
}, function (err, data) { 
    callback(err, data) 
}) 
}; 

Более подробную информацию см HERE

+0

я должен уточнить, что я использую MySQL, но ваш ответ поставил меня на правильный путь. Что работало, фактически устанавливая шаблон следующим образом: 'var pattern ="% s "+ q +"% s ";' и вместо того, чтобы использовать ilike, что привело к некоторым ошибкам, просто использующим подобные. 'like: pattern' –

Смежные вопросы