【发布时间】:2015-03-04 12:36:57
【问题描述】:
我有用户控制器,我写了以下带有条件的查找查询
$userData = $this->User->find('first', array('conditions'=>array('id'=>null)));
如果我使用id=null 条件编写查找查询,那么它也会从数据库返回第一条记录。
我预计没有任何记录 because 条件为假,但它写入了第一条记录。
我的问题是为什么记录是从数据库返回的,这背后的逻辑是什么?
生成的 MongoDB 查询
db.users.find( {"id":null}, [] ).sort( [] ).limit( 1 ).skip( 0 ).hint( [] );
更新
如果我使用有效的user_id 编写以下查询,那么它会返回记录。
$userData = $this->User->find('first', array('conditions'=>array('id'=>"54c72b984a1bfeb420324670")));
【问题讨论】:
-
投反对票的人先了解我的问题,然后才能投反对票。
-
生成的 SQL 是什么?
-
@AgRizzo 使用生成的查询检查更新的问题。
-
您能向我们展示您不希望退回的退回文件吗?
-
人们要问的是在字段“id”不为空的情况下返回什么文档?我怀疑这只是一个错字,而您的意思只是
"_id": null。如果文档中没有实际的“id”字段,它仍然是有效的查询。
标签: php mongodb cakephp mongodb-query