Поддерживает ли отдельная функция мангуста регулярное выражение в запросе?

У меня есть следующий бит js в проекте node/mongoose. Я работаю над формой автозаполнения. Он отлично работает с обычным «найти», но вместо этого я хочу сделать «отличный» поиск.

Так вот где я нахожусь до сих пор. Я считаю, что проблема заключается в том, как формируется запрос. Может ли кто-нибудь помочь с моим синтаксисом в отдельной строке? Или просто «отличный» мангуст не поддерживает регулярное выражение в необязательном запросе?

var text.term = 'johnny';
var regex = new RegExp("^"+text.term);
// execute the search
Performance.collection.distinct({lc_actor: regex}, function(err, docs) {
    var names = [];
    for(var nam in docs) {
        // push the lc_actor to the array
    names.push(docs[nam].lc_actor);
    }
    // send back via callback function
    callback(null, names);
});

И вот что показывает моя сверхмногословная (-vvvvvvvvvvvvv) консоль мангуста:

Tue Nov 29 13:34:30 [conn1] runQuery called mydb.$cmd { distinct: "performances", query: {}, key: { lc_actor: /^johnny/ } }
Tue Nov 29 13:34:30 [conn1] run command mydb.$cmd { distinct: "performances", query: {}, key: { lc_actor: /^johnny/ } }
Tue Nov 29 13:34:30 [conn1] command mydb.$cmd command: { distinct: "performances", query: {}, key: { lc_actor: /^johnny/ } } ntoreturn:1 reslen:140 526ms

Любые идеи?


person k00k    schedule 29.11.2011    source источник


Ответы (1)


arrow_upward
2
arrow_downward

Отвечая на мой собственный вопрос. У меня действительно были синтаксические ошибки в отдельном методе мангуста. Он принимает 3 параметра, у меня было только 2. Правильный синтаксис с регулярным выражением (или любым условием):

Performance.collection.distinct('lc_actor', {lc_actor: regex}, function(err, docs) {

Из документов Mongoose для Model.distinct():

Model.distinct(field, conditions, callback);

http://mongoosejs.com/docs/finding-documents.html

person k00k    schedule 29.11.2011