rogerthomas84 / ohdm
OhDM 是一个用于 MongoDB 的 PHP 对象文档映射器 (ODM)
1.1.0
2015-08-06 06:44 UTC
Requires
- php: >=5.3.2
This package is auto-updated.
Last update: 2024-09-16 01:30:05 UTC
README
OhDM
OhDM 是一个 ODM,它是一个简单的 PHP 库,可以简化与 MongoDB 交互的过程。
稳定性
OhDM 是一个新项目,因此一些功能可能无法按预期工作。目前它被归类为早期阶段,并且有一个 1.0.0 版本,我们将其归类为稳定版。
尽管如此,我们将引入一些新功能以进一步增强库,但它们将相应地进行版本控制。
提供帮助
最简单的方法是通过分支和提出 PR 来提供帮助。我唯一的要求是您将更改贡献回这个仓库。
除非您已测试(并编写了测试)所做的更改,否则更改将不会合并。我们也力求达到高测试覆盖率。
目前,我们的测试覆盖率达到了 99.33%,我们真的希望保持在那个水平附近。
快速入门
为了快速开始,您首先需要设置配置对象。它是一个单例。
<?php Config::init( new \MongoClient( 'mongodb://127.0.0.1', array('connect' => false) ), 'pets' // The database name );
现在您需要一个集合模型。例如:
<?php namespace My\Namespace\Name; use OhDM\Collection; class Cats extends Collection { public $name = null; public function setName($name) { $this->name = $name; } public function getName() { return $this->name; } }
查询介绍
创建文档
<?php $record = new Cats(); $record->setName('fuzzy'); $record->save();
按 ID 查找
当您知道对象的 _id
时,查找的最快方式。OhDM 利用这一点并实现了一种快速便捷的方式来定位它们。
<?php $record = Cats::findById( new \MongoId('53466f2978f7a8bc5c1ae933') ); if ($record) { // $record is instance of Cats echo 'My cats name is: ' . $record->getName(); } else { // couldn't find it! }
按查询查找
OhDM 支持通过高级查询查找文档,这将返回对象形式的项。剧透一下:它就像下面看起来那么简单!
<?php $command = array( 'query' => array('name' => 'kitty'), 'fields' => array(), 'skip' => 0, 'limit' => 100, 'sort' => array( 'name' => 1 ) ); $ohDmCursor = Cats::find($command); while ($ohDmCursor->hasNext()) { $thisCat = $ohDmCursor->getNext(); // it's an instance of Cats }
删除
可以在任何已保存的文档上调用删除,并将其从数据库中移除。
<?php $record = Cats::findById( new \MongoId('53466f2978f7a8bc5c1ae933') ); $record->delete();
更新
由于它是一个对象,只需更改变量并对其调用 save()
即可。
<?php $record = Cats::findById( new \MongoId('53466f2978f7a8bc5c1ae933') ); if ($record) { // $record is instance of Cats echo 'My cats name was: ' . $record->getName(); $record->setName('kitty'); $record->save(); echo 'My cats name is now: ' . $record->getName(); } else { // couldn't find it! }