Monga — библиотека для работы с MongoDB

Простая библиотека для работы с MongoDB на PHP 5.4+

Установка

Через Composer

$ composer require league/monga

Работа с Monga

use League\Monga;

// Подключение
$connection = Monga::connection($dns, $connectionOptions);

// Получение БД
$database = $connection->database('db_name');

// Удаление БД
$database->drop();

// Получение коллекции
$collection = $database->collection('collection_name');

// Удаление коллекции
$collection->drop();

// Очистка коллекции
$collection->truncate();

// Вставка новых значений в коллекцию
$insertIds = $collection->insert([
	[
		'name' => 'John',
		'surname' => 'Doe',
		'nick' => 'The Unknown Man',
		'age' => 20,
	],
	[
		'name' => 'Frank',
		'surname' => 'de Jonge',
		'nick' => 'Unknown',
		'nik' => 'No Man',
		'age' => 23,
	],
]);

// Обновление коллекции
$collection->update(function ($query) {
	$query->increment('age')
		->remove('nik')
		->set('nick', 'FrenkyNet');
});

// Ищем Frank-а
$frank = $collection->findOne(function ($query) {
	$query->where('name', 'Frank')
		->whereLike('surname', '%e Jo%');
});

// То же самое действия, другой синтаксис
$frank = $collection->find([
	'name' => 'Frank',
	'surname' => new MongoRegex('/e Jo/imxsu')
]);

$frank['age']++;

$collection->save($frank);

// Поддержка подзапросов
$users = $collection->find(function ($query) {
	$query->where(function ($query) {
		$query->where('name', 'Josh')
			->orWhere('surname', 'Doe');
	})->orWhere(function ($query) {
		$query->where('name', 'Frank')
			->where('surname', 'de Jonge');
	});
});

// получение массива пользователей
$arr = $users->toArray();

Агрегирование

Поддерживается работа с новым pecl пакетом MongoDB для вывода агрегированных данных:

$collection->aggregate(function ($a) {
	$a->project([
		'name' => 1,
		'surname' => -1,
		'tags' => 1,
	])->unwind('tags');

	// Более сложная выборка
	$a->project(function ($p) {
		$p->select('field')
			->select('scores')
			->exclude('other_field');
	})->group(function ($g) {
		$g->by(['$name', '$surname'])
			->sum('scores');
	});
});

Данный урок подготовлен для вас командой сайта ruseller.com
Источник урока: https://github.com/thephpleague/monga
Перевел: Станислав Протасевич
Урок создан: 8 Мая 2017
Просмотров: 831
Правила перепечатки


5 последних уроков рубрики "PHP"

^ Наверх ^