Как правильно фильтровать запрос 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])),
});
Так как вы пишете на typescript, будет удобно использовать 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);