2015-12-13 4 views
0

У меня есть база данных статей с несколькими столбцами и хотелось бы иметь возможность искать как title, так и description.Sequelize - Как искать несколько столбцов?

В настоящее время у меня есть:

Article.findAll({ 
    where: { 
    title: { like: '%' + searchQuery + '%' } 
    } 
}); 

Как можно также найти описание, а?

Я читал the sequelize documentation, даже в разделе Complex filtering/OR/NOT queries, но примеры только объясняют поиск в одном столбце.

ответ

4
Article.findAll({ 
    where: { 
    title: { like: '%' + searchQuery + '%' }, 
    description: { like: '%' + searchQuery2 + '%' } 
    } 
}); 

выше удостоверится title включает searchQueryиdescription включает searchQuery2. Однако, если вы хотели бы получить результаты обратно, когда статья включает в себя один из двух, следующий запрос должен работать:

Article.findAll({ 
    where: { 
    $or: [ 
    title: { like: '%' + searchQuery + '%' }, 
    description: { like: '%' + searchQuery2 + '%' } 
    ] 
    } 
}); 
0

Ваш вопрос первый раз, когда я слышал о sequelize.js, но я смотрел на DOCO и нашел это:

Project.findOne({ 
    where: { 
    name: 'a project', 
    $or: [ 
     { id: [1,2,3] }, 
     { id: { $gt: 10 } } 
    ] 
    } 
}) 

Project.findOne({ 
    where: { 
    name: 'a project', 
    id: { 
     $or: [ 
     [1,2,3], 
     { $gt: 10 } 
     ] 
    } 
    } 
}) 

Обе части кода кода выдаст следующее:

SELECT * 
FROM `Projects` 
WHERE (
    `Projects`.`name` = 'a project' 
    AND (`Projects`.`id` IN (1,2,3) OR `Projects`.`id` > 10) 
) 
LIMIT 1; 

в разделе выше этих примеров дает различные пункты разрешается включая $and и $or:

Project.findAll({ 
    where: { 
    id: { 
     $and: {a: 5}   // AND (a = 5) 
     $or: [{a: 5}, {a: 6}] // (a = 5 OR a = 6) 
    ... etc 
+0

Спасибо за ваш ответ, но поправьте меня, если я ошибаюсь, но делает это до сих пор не только поиск один столбец? (в этом примере 'Projects.id') – waffl

+0

Я думаю, что эти столяры могут использоваться внутри полей' where' между полями. См. '$ Not example' рядом с ними для использования с двумя разными столбцами. – Turophile

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