我正在为 cakephp 使用 ICHIKAWAY 的 mongodb 驱动程序。
我真正不明白的一件事是如何使用 MONGODB 在 cakephp 中执行“LIKE”语句。
我尝试过这个声明:
$users = $this->User->find('all', array('conditions' => array('data_type' => 'user', 'profile.firstname LIKE' => '%'.$string)));
但它不起作用,因为“LIKE”是一个 mysql 函数。
感谢您的建议。
最佳答案
使用 MongoRegex
Mongo DB 有一个 LIKE 运算符 - 它只是一个正则表达式,使用它:
$users = $this->User->find('all', array(
'conditions' => array(
'data_type' => 'user',
'profile.firstname' => new MongoRegex("/$string/i")
)
));
存在 SQL 兼容性行为
Mongodb 驱动程序包含提供 sql syntax compatibility 的行为。要使用它,只需确保您的模型正在使用此行为:
class User extends AppModel {
$actsAs = array(
'MongoDB.SqlCompatible'
)
}
然后您可以完全按照问题中显示的方式使用查询:
$users = $this->User->find('all', array(
'conditions' => array(
'data_type' => 'user',
'profile.firstname LIKE' => '%'.$string
)
));
关于mongodb - 如何在mongodb cakephp中使用 "LIKE"语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17134517/