knodes / li3_ensureindex
此软件包最新版本(dev-master)没有可用的许可证信息。
dev-master
2013-10-16 13:32 UTC
Requires
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