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 ]);

Вот простой пример поиска в 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
    )
 

Дополнительные сведения о group и order.

Методы

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.

Печать/экспорт