knodes/li3_ensureindex

此软件包最新版本(dev-master)没有可用的许可证信息。

安装: 723

依赖项: 0

建议者: 0

安全: 0

星级: 3

关注者: 4

分支: 2

开放问题: 0

类型:lithium-library

dev-master 2013-10-16 13:32 UTC

This package is not auto-updated.

Last update: 2024-09-24 05:10:47 UTC


README

li3_ensureindex 允许你在模型中定义 MongoDB 索引,并通过控制台命令在服务器上确保它们。

安装

获取库代码

$ cd /path/to/app/libraries
$ git clone https://github.com/Knodes/li3_ensureindex.git

确保它在 app/config/bootstrap/libraries.php 中被添加

Libraries::add('li3_ensureindex');

索引定义

为了在你的模型中定义索引,只需添加一个静态和公共的 _indexes 属性,例如

static public $_indexes = array(
    'indexname' =>  array(
        'keys' => array('somefield' => -1)
    )
);

就是这样。'indexname' 键将用作 MongoDB 中的索引名称。其他选项默认为以下

'unique' => false,
'dropDups' => false,
'background' => true,
'safe' => true,
'timeout' => 10000

并且可以轻松覆盖

static public $_indexes = array(
    'indexname' =>  array(
        'keys' => array('somefield' => -1),
        'background' => false,
    ),

    'anotherindex' =>  array(
        'keys' => array('anotherfield' => -1, 'athirdfield' => 1),
        'unique' => true,
        'dropDups' => true,
        'safe' => false
    ),

);

请注意,MongoCollection::ensureIndex 限制同样适用,具体请参阅 文档

确保索引

此库提供了一个控制台命令来确保已定义的索引。确保所有模型定义的所有索引就像这样

li3 ensure-indexes

这将生成一个关于已创建哪些索引的详细报告。请注意,现有索引不会被从集合中删除。

也可以通过提供参数将索引确保限制为特定模型

li3 ensure-indexes --model=MyModel