Я не могу запросить с помощью% в коллекции phalcon

Я использую phalcon с mongo db. Модель – это коллекция . Я хочу использовать find для получения

SELECT * FROM Users WHERE Username LIKE '%TienNguyen%' 

Я вижу в mongo db запрос

 b.users.find( { Username: /TienNguyen/ } ) 

Но в коллекции Фалкона. Как это сделать?

Я попробовал Users::find([['Username' => "/TienNguyen/"]]); Это не работает.

пожалуйста, помогите мне

Как уже упоминалось выше, поиски регулярных выражений, которые не привязаны к началу строки, могут быть очень дорогими, поскольку они требуют полного сканирования таблицы. В зависимости от вашего варианта использования вы можете вместо этого использовать текстовый индекс . Он обеспечивает поддержку беззаботного поиска без привязки, включая суффикс.

Да, то, что вы хотели, это форма оператора $ regex, вместо того, чтобы передавать в regex в виде строки. Хотя эта форма работает в оболочке, большинство драйверов более счастливы с синтаксисом оператора:

 Users::find([[ 'Username' => [ '$regex' => 'TienNguyen' ] ]]) 

Будьте осторожны с использованием $ regex, как показывает страница. Вы можете испортить производительность, если вы не ищете из * начала * строки, как в "^TienNguyen" используя оператор каретки.

Для справки просто JSON декодирует любую стандартную форму аргумента из руководства Mongo, чтобы получить эквивалентную вам структуру для большинства встроенных функций драйвера.

Вы могли бы сделать что-то вроде:

 $Users = \Users::query() ->where(name LIKE :name:) ->bind(array('name' => '%' . $name . '%')) ->execute(); 

Попробуйте:

 Users::find([['Username' => new MongoRegex("/TienNguyen/")]]); 

Удачи!

Найден решение

  $objs = Items::find( [ [ 'title' => [ '$regex' => $query, '$options' => 'i' ] ] ] );