MongoDB Yii2 中的字符串字段值长度
MongoDB string field value length in Yii2
我刚刚阅读 并在 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 中工作?
现在无法测试,但可以尝试这样的操作:
$languages = Language::find()
->where(['$ne', 'name', ''])
->andWhere(['=', '$where','this.i18n.length<3'])
->all();
我想没有办法直接查询数据库。我在 php:
中过滤了结果
$languages = Language::find()->where(['$ne', 'name', ''])->all();
foreach ($languages as $fac) {
if(strlen($fac->i18n)<3){
// my code here
}
}
谢谢。
我刚刚阅读
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 中工作?
现在无法测试,但可以尝试这样的操作:
$languages = Language::find()
->where(['$ne', 'name', ''])
->andWhere(['=', '$where','this.i18n.length<3'])
->all();
我想没有办法直接查询数据库。我在 php:
中过滤了结果$languages = Language::find()->where(['$ne', 'name', ''])->all();
foreach ($languages as $fac) {
if(strlen($fac->i18n)<3){
// my code here
}
}
谢谢。