mongodb - 如何在mongodb cakephp中使用 "LIKE"语句

标签 mongodb cakephp

我正在为 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/

相关文章:

node.js - Mongoose 排序并每个字段只获取一个

node.js - 如何使用虚拟方法从 Mongoose 模式获取枚举值?

cakephp - 使用 CakePHP 的 FormHelper::radio() 方法在我的标签中获取我的输入

php - CakePHP - 使用元素将变量从 Controller 传递到布局

python - Windows 中的 "ImportError: Cannot import name mongoclient"

mongodb - 显示 dbs 给出 "Not Authorized to execute command"错误

android - 在 Eclipse 中使用 Android 连接到 MongoDB

CakePHP 名称约定问题

php - Cakephp 查询缓存

升级到 PHP 5.4 后 CakePHP 控制台问题