Робота бібліотеки PHP із драйвером MongoDB (PHPLIB)
Після початкового налаштування драйвера продовжиться пояснення того, як розпочати роботу з драйвером MongoDB та користувальницькою бібліотекою, щоб створити перший проект.
Встановлення бібліотеки PHP через Composer
Останнє, що необхідно встановити перед тим, як почати писати програму, це бібліотека PHP.
Бібліотеку встановлюватимемо через пакетний менеджер » Composer. Інструкції зі встановлення Composer на різні платформи опубліковані на його сайті.
Бібліотеку встановлюють так:
$ composer require mongodb/mongodb
Буде виведено щось на кшталт:
./composer.json has been created Loading composer repositories with package information Updating dependencies (including require-dev)
- Installing mongodb/mongodb (1.0.0) Downloading: 100%
Writing lock file Generating autoload files
Composer створить кілька файлів: composer.json
composer.lock
та директорію vendor
, що містить саму бібліотеку та інші залежності, які будуть потрібні в проекті.
Робота з бібліотекою PHP
Крім управління залежностями, Composer також містить автозавантажувач класів цих залежностей. Необхідно переконатися, що цей автозавантажувач включений у початок скрипту або код початкового завантаження програми:
Loading...
Після цього можна використовувати бібліотеку як описано » в документації
Якщо раніше доводилося працювати з драйвером MongoDB іншими мовами, API бібліотеки буде виглядати знайомим. Він містить клас » Clientдля соединения с MongoDB, класс» Database для операцій рівня бази даних (наприклад, команди, керування колекціями) та клас » Collectionдля операций уровня коллекций (наПриклад, операций» CRUD, Управління індексами).
Наприклад, ось як вставити документ у колекцію beers бази даних demo :
Loading...
Оскільки вставлений документ не містив поля _id
драйвер згенерує для сервера об'єкт MongoDB\BSON\ObjectId, щоб використовувати як _id
. Це значення також стає доступним методу, що викликається на об'єкті результату insertOne
Після вставки можна запросити щойно вставлені дані. Для цього викликають метод find
, який повертає курсор, що ітерується:
Loading...
Хоча після знайомства з прикладами може бути неочевидно, але документи BSON і масиви за умовчанням десеріалізовані як типи класів у бібліотеці. Ці класи дають гарантію, що значення збережуть типи при серіалізації назад у BSON, що унеможливлює проблеми зі старими драйверами, коли масиви могли перетворитися на документи і навпаки. А також цей тип класів розширює клас ArrayObjectщо підвищує зручність роботи з ними. Докладніше про серіалізацію та десеріалізацію між змінними PHP та BSON розказано у специфікації Постійні дані