Php Yii2 MongoDb查找comapre字段
这可能是一个愚蠢的问题,但我被卡住了,我想找到uuid和main_uuid不相等的记录 我可以在控制台中使用下面的查询在mongo中查找记录 Mongo系列Php Yii2 MongoDb查找comapre字段,php,mongodb,yii2,Php,Mongodb,Yii2,这可能是一个愚蠢的问题,但我被卡住了,我想找到uuid和main_uuid不相等的记录 我可以在控制台中使用下面的查询在mongo中查找记录 Mongo系列 { "_id" : ObjectId("5ff2c31e731333aa7e3affca"), "main_uuid" : "c0f5ac89-8dc7-4b54-9cce-bafd523a30e5"
{
"_id" : ObjectId("5ff2c31e731333aa7e3affca"),
"main_uuid" : "c0f5ac89-8dc7-4b54-9cce-bafd523a30e5",
"uuid" : "c0f5ac89-8dc7-4b54-9cce-bafd523a30e5"
}
=================================================
mongoQuery working in console=>
db.ntc.cdr.find ( { $where : "this.uuid != this.main_uuid" } )
我也试过,但没有成功
class Cdr extends ActiveRecord
{
/**
* {@inheritdoc}
*/
public static function collectionName()
{
return [MONGO_DB, 'ntc.cdr'];
}
}
class CdrSearch extends Cdr{
$query = Cdr::find();
$dataProvider = new ActiveDataProvider([
'query' => $query
]);
}
对于ActiveRecord,如果您希望比较为相等,则应
Cdr::find()->where(['=', 'main_uuid' , 'uuid'])->all();
或者干脆
Cdr::find()->where('main_uuid = uuid')->all();
如果希望不相等,请使用
=
而不是=
您链接的帖子与数据库级别的解释有关,而不是与活动记录实现有关。您使用哪个适配器/包从Yii2访问mongodb?我使用的是我想要的结果,正如链接中所示,我的错误。您是否在最后设置了all()
?这个查询-Cdr::find()->where(“this.uuid!=this.main\u uuid”)->all()
返回什么?我猜=
应该是=代码>这里。@ArSeN谢谢。。两个操作员的答案都更新了。更新的问题请看上面的问题都不起作用,我已经试过了。你有错误吗。。给我看错误信息我没有收到任何错误,但也没有得到适当的结果,过滤器没有应用,我的意思是,如果你能得到一些提示,请附上有问题的图片。