Содержание
Mongo Mapper
Mongo Object-Document-Mapper (ODM) - это реализация абстрактного класса Cursor. В этой статье описаны унаследованные методы.
Пространство имен: \DB\Mongo
Расположение файла:lib/db/mongo/mapper.php
Инициализация
Чтобы использовать Mongo ODM, создайте соединение Mongo DB. Например:
$mapper = new \DB\Mongo\Mapper(\DB\Mongo $db, string $collection);
Если вы хотите создать класс модели, то:
$f3->set('DB', new \DB\Mongo('mongodb://localhost:27017','fatfree')); class User extends \DB\Mongo\Mapper { public function __construct() { parent::__construct( \Base::instance()->get('DB'), 'users' ); } } $user = new User(); $user->load(array('_id' => new \MongoId('50ecaa466afa2f8c1c000004'))); // etc.
Синтаксис
$ filter
$filter Mongo принимает общий массив Mongo найти, см db.collection.find ссылки и запросы документов учебника.
array([ array $find ]);
Search
Вот простой пример поиска в Mongo:
$userList = $user->find(array('email'=> new \MongoRegex('/gmail/'))); // returns all users with an email address that contains GMAIL // ends with gmail.com => /gmail\.com$/ // starts with john => /^john/
Или просто загрузите одного пользователя по его ID:
$user->load(array('_id'=> new \MongoId('507c35dd8fada716c89d0013')));
$ option
Аргумент Mongo $option принимает имеет структуру:
array( 'group' => array ( 'keys', 'initial', 'reduce', 'finalize' ), 'order' => string $order, 'limit' => integer $limit, 'offset' => integer $offset )
Методы
exists
Вернет TRUE, если данное поле определено
bool exists( string $key )
set
Присвойте значение полю
scalar|FALSE set( string $key, scalar $val )
Этот класс использует преимущества класса Magic и интерфейса ArrayAccess. Это означает, что вы можете устанавливать и получать переменные с прямым доступом следующим образом:
$mapper->foo = 'bar'; $mapper['foo'] = 'bar';
get
Получить значение данного поля
scalar|FALSE get( string $key )
clear
Удалить поле
NULL clear( string $key )
cast
Вернуть поля объекта mapper'а в виде ассоциативного массива
array cast( [ object $obj = NULL ] )
select
Создать запрос и выполнить
array select( [ string $fields = NULL [, array $filter = NULL [, array $options = NULL [, int $ttl = 0 ]]]] )
find
Вернет записи, соответствующие заданному критерию
array find( [ array $filter = NULL [, array $options = NULL [, int $ttl = 0 ]]] )
count
Подсчет записей, соответствующих заданному критерию
int count( [ array $filter = NULL [, int $ttl = 0 ]] )
insert
Вставить новую запись
array insert()
update
Обновить текущую запись
array update()
erase
Удалить текущую запись
bool erase( [ array $filter = NULL ] )
copyfrom
Сопоставить объект mapper'а с помощью массива
NULL copyfrom( array | string $var [, callback $func = NULL ] )
Этот метод позволяет сопоставить элементы массива из hive с БД в таблице которой имена полей соответсвуют именам ключей этого массива.
$func - это функция обратного вызова, применяемая к переменной массива hive:
if ($func) $var = $func($var);
copyto
Заполните переменную массива hive полями mapper'а
NULL copyto( string $key )
factory
Преобразование массива в объект mapper'а
protected object factory( array $row )
Этот метод, с областью видимости protected, используется внутри метода select.