TypeORM запрос типа activeRecord для "где (a & b) или (c & d)"? - PullRequest
0 голосов
/ 23 октября 2019

Я хочу использовать TypeORM для запуска запроса, подобного

... WHERE (a=1 && b=true) OR (a=2 && b=false)

Я вижу кучу ссылок на это в стиле QueryBuilder , но мне нужно знать, как это сделатьэто с использованием стиля ActiveRecord.

Ответы [ 2 ]

1 голос
/ 23 октября 2019

Вы можете сделать это, предоставив массив объектов для свойства where::

Item.find({
    where: [
        { user: { id: userId }, confirmed: "true" },
        { user: { id: userId }, status: "active" }
    ]
});

В приведенном выше запросе будут найдены элементы, принадлежащие пользователю, где

  • пользователь соответствует идентификатору пользователя И подтвержден, или ...
  • пользователь соответствует идентификатору пользователя И активен
0 голосов
/ 23 октября 2019

Я не знаю о TypeORM, однако я нашел это на активных методах запроса ruby:

https://guides.rubyonrails.org/active_record_querying.html#conditions

raw code: ...where("orders_count = ? AND locked = ?", params[:orders], false)
Example Code: ...where(["(a= ? and b= ?) Or (a=? and b=?)", 1, true, 2, false])
...