Как в Tortoise ORM выполнить фильтрацию записей по ключу в JSON?

  • 16 августа 2023 г. 17:26
Ответы на вопрос 1
Для выполнения фильтрации записей по ключу в JSON можно использовать модификаторы __contains и __filter в Tortoise ORM. 

Пример использования модификатора __contains для фильтрации записей по ключу 1 в колонке nums выглядит следующим образом:

```python
from tortoise.query_utils import Q

# Фильтрация записей, в которых есть ключ 1 в колонке nums
result = await Model.filter(nums__contains={'1': None}).all()
```

В этом примере мы используем модификатор __contains, чтобы проверить наличие ключа 1 в колонке nums. Значение None в качестве значения ключа указывает на то, что особого значения у ключа нет. 

Если модификатор __contains не работает в вашем случае, можно вместо него использовать модификатор __filter. Фильтрация записей будет выглядеть следующим образом:

```python
from tortoise.query_utils import Q

# Фильтрация записей, в которых есть ключ 1 в колонке nums
result = await Model.filter(Q(nums__1__isnull=False)).all()
```

В этом примере мы используем модификатор __filter, чтобы проверить наличие ключа 1 в колонке nums. Метод __isnull используется для проверки, что ключ не равен None.

Оба этих примера должны работать для выполнения фильтрации записей по ключу в JSON с помощью Tortoise ORM.
Похожие вопросы