我正在使用ICHIKAWAY的mongodb驱动程序for cakephp。
我真正得到的一件事是如何使用MONGODB在cakephp中执行“LIKE”语句。
我试过这句话:
$users = $this->User->find('all', array('conditions' => array('data_type' => 'user', 'profile.firstname LIKE' => '%'.$string)));
但它不起作用,因为“LIKE”是一个mysql函数。
感谢您的建议。
答案 0 :(得分:3)
Mongo DB有一个LIKE运算符 - 它只是一个正则表达式,使用它:
$users = $this->User->find('all', array(
'conditions' => array(
'data_type' => 'user',
'profile.firstname' => new MongoRegex("/$string/i")
)
));
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
)
));