Я только что прочитал Как запросить длину значения строкового поля в MongoDB и успешно получил запрос, работающий при использовании непосредственно в консоли MongoDB. Запрос, который я использовал, был:
db.getCollection('language').find({
name: {$ne: ''},
$where: "this.i18n.length < 3"
})
Я сейчас пытаюсь повторить то же самое в Yii2:
$languages = Language::find()
->where(['$ne', 'name', ''])
->andWhere(['<', 'this.i18n.length', '3'])
->all();
но массив пуст.
Я пробовал запрос без длины строки:
$languages = Language::find()
->where(['$ne', 'name', ''])
->all();
и массив заполнен.
Я также пробовал запрос только с длиной строки:
$languages1 = Language::find()
->where(['<', 'this.i18n.length', '3'])
->all();
$languages2 = Language::find()
->where(['<', 'i18n.length', '3'])
->all();
но массив остается пустым.
Вопрос: как мне заставить $where: "this.i18n.length < 3"
работать в Yii2?