Как правильно фильтровать запрос typeorm?

Подскажите пожалуйста, я ищу в таблице бд все кроме того где status не 1 и не 4

const orders = await this.orderRepository.find({
      status: Not(1),
    });

здесь я ищу все где status не 1, но мне нужно искать все что не 1 и не 4 как это сделать? делал вот так

const orders = await this.orderRepository.find({
      status: Not(1,4),
    });

но так выдает ошибку, как правильно сделать?


Ответы (1 шт):

Автор решения: nörbörnën

Нужно одновременно использовать advanced options Not и In:

const orders = await this.orderRepository.find({
  status: Not(In([1, 4])),
});

Так как вы пишете на , будет удобно использовать enum, вместо цифрового значения статуса заказа, например,

export enum OrderStatus {
  new,
  complete,
  paid,
  done,
  refund,
}

и тогда любой другой программист поймёт ваш запрос правильнее и быстрее:

const conditions: FindConditions<Order> = {
  status: Not(In([
    OrderStatus.complete,
    OrderStatus.refund,
  ]),
};
const orders = await this.orderRepository.find(conditions);
→ Ссылка