Con la llegada de PHP7, el antiguo controlador mongodb ya no es compatible.
El nuevo controlador disponible tiene un nivel un poco bajo en comparación con el anterior, por lo que puede resultar un poco complicado trabajar con él.
Para esto fue concebida esta biblioteca.
!!! PARA OBTENER DIRECTRICES DETALLADAS CONSULTE EL WIKI EN: https://github.com/ThomasSquall/PHP7MongoDriver/wiki
Usar Composer es bastante simple, simplemente ejecuta el siguiente comando:
$ composer require thomas-squall/php7-mongo-driver
Antes de usar esta biblioteca, debe asegurarse de tener instalado PHP7.0 o versión principal y el controlador MongoDb de pecl.
Para aquellos que usan una distribución de Linux (asegúrense de tener pecl instalado), simplemente ejecuten:
$ sudo pecl install mongodb
Después de eso debes poner la siguiente cadena.
extension=mongodb.so
Dentro de tu php.ini
Al principio necesitas definir una cadena de conexión.
El formato de las cadenas de conexión es:
mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]]
Para obtener más información, consulte el enlace: https://docs.mongodb.com/manual/reference/connection-string/
Una vez definido, debe crear una instancia de un nuevo Adaptador:
use MongoDriver Adapter ;
// Enstablish a connection.
$ adapter = new Adapter ();
$ adapter -> connect ( CONNECTION_STRING );
En este punto desea seleccionar una Base de Datos donde realizar su consulta:
$ adapter -> selectDB ( ' myDatabase ' );
NOTA: puede seleccionar una base de datos directamente en el constructor pasando el nombre de la base de datos como segundo parámetro.
Una vez seleccionada la base de datos simplemente podemos consultar la colección que queremos:
$ items = $ adapter -> find ( ' myCollection ' );
También puedes filtrar tu consulta:
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 );
Si desea insertar un elemento, simplemente debe pasar una matriz o un objeto a la función de inserción especificando la colección:
$ item = new Person ();
$ item -> name = ' Thomas ' ;
$ item -> surname = ' Cocchiara ' );
// or: $item = ['name' => 'Thomas', 'surname' => 'Cocchiara'];
$ adapter -> insert ( ' people ' , $ item );
Espero que encuentren útil esta biblioteca.
Por favor compártelo y dame tu opinión :)
tomás