Запросы для подпоследовательности с использованием Django ArrayFields
У меня есть ArrayField, в котором хранятся последовательности целых чисел, например: Sequences.objects.first().seq
возвращается [5,4,4,3,2,2,1]
, Последовательности всегда хранятся в порядке убывания, и я хочу отфильтровать Sequences
найти подпоследовательность. Тем не менее, я сталкиваюсь с проблемами при попытке найти подпоследовательность, которая содержит повторяющиеся элементы, и я не знаю, как решить эту проблему.
Например, если я хочу фильтровать любую последовательность, содержащую подпоследовательность q = [5,4,4,4,2]
, Я бы попробовал Sequences.objects.filter(seq__contains=q)
, но этот QuerySet будет включать последовательность [5,4,4,3,2,2,1]
, поскольку каждый элемент q находится отдельно в последовательности, но не все вместе. Однако я не хочу только точных совпадений. Если бы я фильтровал по q, я хотел бы включить что-то вроде [6,5,5,4,4,4,3,2,1]
но отклонить что-то вроде [5,4,4,3,2,2,1]
поскольку в первом случае все q имеют кратность, а во втором отсутствует 4, то есть q не содержит подпоследовательность.