Для вирішення питання про доступ до полів бази даних у методі findAndCount
за допомогою pgsql, typeorm і nestjs, потрібно розібратися з кількома ключовими аспектами цієї задачі.
Почнемо з розгляду самого методу findAndCount
. Цей метод є частиною ORM (Object-Relational Mapping), яке надає typeorm, і використовується для отримання результатів запиту до бази даних з підтримкою пагінації та підрахунку загальної кількості елементів. У контексті nestjs цей метод може бути частиною сервісу або контролера, який відповідає за взаємодію з базою даних.
Проте, в вашому запиті виникає питання щодо доступу до полів бази даних у класі, який відповідає за виконання цього методу. Для досягнення цього мети, спершу потрібно зрозуміти синтаксис фільтрації даних, який використовується в typeorm.
Ви спробували використати конструкцію actualAmount: Not("PaymentEntity.paidAmount")
, але отримали помилку через невірний синтаксис. Правильний підхід до використання оператора Not
в typeorm полягає в передачі об’єкта з умовою, що необхідно перевірити. У вашому випадку потрібно скористатися оператором $ne
(не дорівнює), щоб вказати, що значення поля не дорівнює значенню іншого поля.
1 2 3 4 5 6 |
const where = { actualAmount: Not({ $eq: 'PaymentEntity.paidAmount' }), action: { $not: [PaymentActionType.NotRequired, PaymentActionType.Taken], }, }; |
Після внесення зазначених вище змін до коду методу getAmountChangePayments
, вам слід перезавантажити ваше застосування nestjs для застосування змін. Після цього ви зможете успішно отримувати доступ до полів бази даних у методі findAndCount
.
Зверніть увагу, що зміна синтаксису фільтрації може вимагати додаткових змін у вашому коді, в залежності від особливостей вашого проекту. Наприклад, ви можете використовувати інші оператори, такі як $gt
, $lt
, $gte
, $lte
, в залежності від вимог щодо фільтрації даних.
Таким чином, ви зможете успішно отримувати доступ до полів бази даних у методі findAndCount
з використанням pgsql, typeorm і nestjs.