tl; dr: Нет, не совсем.
Согласно матрице сопоставления типов Doctrine , json_array
отображается на столбец MySQL s MEDIUMTEXT
type, который по умолчанию, очевидно, не индексирует свое содержимое как json, следовательно, практически не дает преимущества в производительности. (также AFAICT, doctrine не предоставляет никаких функций json, кроме преобразования db json из и в php массивы / нули)
Может быть, вы могли бы волшебным образом выполнить поиск по строке magi c для извлечения значения для сортировки по нему, но вы все равно не получите повышения производительности, которое обеспечивает правильный индекс. В зависимости от ваших данных это может стать заметно медленным (и потреблять память).
Тип данных JSON является довольно «новым» для мира реляционных баз данных, и сопоставители, такие как doctrine, еще не полностью его приняли. . Расширение doctrine для обработки этого типа данных, вероятно, потребует много работы. Вместо этого вы можете переосмыслить схему своей таблицы, включив в нее все поля как столбцы , которые вы хотите упорядочить, чтобы использовать все преимущества реляционной базы данных (например, индексирование).