С появлением PHP7 старый драйвер mongodb больше не поддерживается.
Новый доступный драйвер немного низкоуровневый по сравнению с предыдущим, поэтому работать с ним может быть немного сложнее.
Именно для этого и была задумана эта библиотека.
!!! ПОДРОБНЫЕ РУКОВОДСТВА СМОТРИТЕ НА ВИКИ: https://github.com/ThomasSquall/PHP7MongoDriver/wiki.
Использовать композитор довольно просто, просто запустите следующую команду:
$ composer require thomas-squall/php7-mongo-driver
Перед использованием этой библиотеки вам следует убедиться, что у вас установлен PHP7.0 или основной драйвер и драйвер MongoDb из pecl.
Для тех, кто использует дистрибутив Linux (убедитесь, что у вас установлен pecl), просто запустите:
$ sudo pecl install mongodb
После этого вы должны поместить следующую строку
extension=mongodb.so
Внутри вашего php.ini
Сначала вам нужно определить строку подключения.
Формат строк подключения:
mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]]
Для получения дополнительной информации см. ссылку: https://docs.mongodb.com/manual/reference/connection-string/.
После определения вам необходимо создать экземпляр нового адаптера:
use MongoDriver Adapter ;
// Enstablish a connection.
$ adapter = new Adapter ();
$ adapter -> connect ( CONNECTION_STRING );
На этом этапе вы хотите выбрать базу данных, в которой будет выполняться ваш запрос:
$ adapter -> selectDB ( ' myDatabase ' );
ПРИМЕЧАНИЕ. Вы можете выбрать базу данных непосредственно в конструкторе, передав имя базы данных в качестве второго параметра.
После выбора базы данных мы можем просто запросить нужную нам коллекцию:
$ items = $ adapter -> find ( ' myCollection ' );
Вы также можете отфильтровать свой запрос:
use MongDriver Filter ;
$ filters =
[
new Filter ( ' myField1 ' , ' myValue1 ' , Filter:: IS_EQUALS ),
new Filter ( ' myField2 ' , [ ' myValue2 ' , ' myValue3 ' ], Filters:: IS_IN_ARRAY )
];
$ items = $ adapter -> find ( ' myCollection ' , $ filters );
Если вы хотите вставить элемент, вам нужно просто передать массив или объект в функцию вставки, определяющую коллекцию:
$ item = new Person ();
$ item -> name = ' Thomas ' ;
$ item -> surname = ' Cocchiara ' );
// or: $item = ['name' => 'Thomas', 'surname' => 'Cocchiara'];
$ adapter -> insert ( ' people ' , $ item );
Надеюсь, вы, ребята, найдете эту библиотеку полезной.
Пожалуйста, поделитесь этим и дайте мне обратную связь :)
Томас