Обеспечить систему фильтрации для пользователей с Golang и MongoDB - PullRequest
0 голосов
/ 04 июля 2019

Я разработал программное обеспечение, которое позволяет пользователям фильтровать данные в базе данных MongoDb.

Например, они могут захотеть извлечь Индикаторы , которые 7 дней назад , с показателем выше 5 и статусом , который активный . Эти данные затем отправляются в другую систему для использования и обработки.

В основном: извлечь эти данные из базы данных и поместить их в эту конечную точку. Конечная точка, которую я упоминаю, - это принятие JSON.

Для этого я изобрел систему фильтрации на основе синтаксиса YAML:

conditions:
  - attribute: score
    operator: gte
    value: 3
  - attribute: status
    operator: is
    value: Active
  - attribute: created_at
    operator: lt
    value: 168
    is_date: true

Работает, с этим проблем нет. Проблема в том, что любое изменение в будущем может привести к изменению программного обеспечения.

У меня вопрос, как предоставить систему фильтрации, напрямую связанную с базой данных, которую я использую? Зная, что я использую DAO , потому что база данных может быть MySQL или MongoDB.

Разрешить им напрямую вводить запросы MongoDB (или MYSQL)? Хм, рискованно. Перейти на GraphQL? Боюсь, уже слишком поздно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...