Bezdepbonusu7Программирование: статьи и ответы

Вопрос

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

Автор вопроса: k00kОтветов: 1

У меня есть следующий бит 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

Любые идеи?

mongodbmongoosedistinct

Ответы

Ответ 1 · рейтинг 2 · k00k

Отвечая на мой собственный вопрос. У меня действительно были синтаксические ошибки в отдельном методе мангуста. Он принимает 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

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы