edsol/mongodb-cakephp

为 CakePHP 3.0 提供的 Mongodb 数据源

安装: 75

依赖者: 0

建议者: 0

安全: 0

星标: 0

关注者: 0

分支: 29

类型:cakephp-plugin

dev-master 2024-07-29 10:57 UTC

This package is auto-updated.

Last update: 2024-09-29 11:18:03 UTC


README

Slack

更多内容

该分支修复了一些错误并添加了在集合中计数行的功能

$this->Categories->count($filters, $options);

Cakephp3 的 Mongodb

为 CakePHP 3.5 提供的 Mongodb 数据源

通过 composer 安装

安装 composer 并运行

composer require Edsol/mongodb 1.0.0

连接插件到您的应用

在您的 config/bootstrap.php 文件中添加以下行,以告诉您的应用程序加载插件

Plugin::load('Edsol/Mongodb');

定义连接

现在,您需要在 config/app.php 文件中设置连接

 'Datasources' => [
    'default' => [
        'className' => 'Edsol\Mongodb\Database\Connection',
        'driver' => 'Edsol\Mongodb\Database\Driver\Mongodb',
        'persistent' => false,
        'host' => 'localhost',
        'port' => 27017,
        'srv' => false,
        'username' => '',
        'password' => '',
        'database' => 'devmongo',
        'ssh_host' => '',
        'ssh_port' => 22,
        'ssh_user' => '',
        'ssh_password' => '',
        'ssh_pubkey_path' => '',
        'ssh_privatekey_path' => '',
        'ssh_pubkey_passphrase' => ''
    ],
],

SSH 隧道变量(以 'ssh_' 开头)

如果您想通过 SSH 隧道连接到 MongoDB,您需要在您的数据源中设置额外的变量。一些变量根据您的连接方式可能是不必要的。如果您使用 SSH 密钥文件连接,则需要 ssh_pubkey_pathssh_privatekey_path 变量,而 ssh_password 变量是不必要的。如果您使用基于文本的密码(这 不是 一个好主意),则情况相反。函数至少需要 ssh_hostssh_user 和一种建立 SSH 隧道的方法。

模型

之后,您需要在您的表类中加载 Edsol\Mongodb\ORM\Table

//src/Model/Table/YourTable.php

use Edsol\Mongodb\ORM\Table;

class CategoriesTable extends Table {

}

观察

find() 函数仅以旧方式工作。因此,如果您想查找某些内容,您需要像以下示例那样操作

$this->Categories->find('all', ['conditions' => ['name' => 'teste']]);
$this->Categories->find('all', ['conditions' => ['name LIKE' => 'teste']]);
$this->Categories->find('all', ['conditions' => ['name' => 'teste'], 'limit' => 3]);

您也可以使用 MongoDB 的高级条件,使用 MongoDB\BSON 命名空间

$this->Categories->find('all', ['conditions' => [
    '_id' => new \MongoDB\BSON\ObjectId('5a7861909db0b47d605c3865'),
    'foo.bar' => new \MongoDB\BSON\Regex('^(foo|bar)?baz$', 'i')
]]);

LICENSE

MIT 许可证 (MIT) 版权 (c) 2013