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
Просмотров: 7114
Правила перепечатки
5 последних уроков рубрики "PHP"
-
Фильтрация данных с помощью zend-filter
Когда речь идёт о безопасности веб-сайта, то фраза "фильтруйте всё, экранируйте всё" всегда будет актуальна. Сегодня поговорим о фильтрации данных.
-
Контекстное экранирование с помощью zend-escaper
Обеспечение безопасности веб-сайта — это не только защита от SQL инъекций, но и протекция от межсайтового скриптинга (XSS), межсайтовой подделки запросов (CSRF) и от других видов атак. В частности, вам нужно очень осторожно подходить к формированию HTML, CSS и JavaScript кода.
-
Подключение Zend модулей к Expressive
Expressive 2 поддерживает возможность подключения других ZF компонент по специальной схеме. Не всем нравится данное решение. В этой статье мы расскажем как улучшили процесс подключение нескольких модулей.
-
Совет: отправка информации в Google Analytics через API
Предположим, что вам необходимо отправить какую-то информацию в Google Analytics из серверного скрипта. Как это сделать. Ответ в этой заметке.
-
Подборка PHP песочниц
Подборка из нескольких видов PHP песочниц. На некоторых вы в режиме online сможете потестить свой код, но есть так же решения, которые можно внедрить на свой сайт.