Com o advento do PHP7, o antigo driver mongodb não é mais suportado.
O novo driver disponível é um pouco de baixo nível em comparação com o anterior, por isso pode ser um pouco complicado de trabalhar.
É para isso que esta biblioteca foi concebida.
!!! PARA ORIENTAÇÕES DETALHADAS, CONSULTE O WIKI EM: https://github.com/ThomasSquall/PHP7MongoDriver/wiki
Usar o compositor é bastante simples, basta executar o seguinte comando:
$ composer require thomas-squall/php7-mongo-driver
Antes de usar esta biblioteca, você deve certificar-se de ter instalado o PHP7.0 ou principal e o driver MongoDb do pecl.
Para quem usa uma distribuição Linux (certifique-se de ter o pecl instalado), basta executar:
$ sudo pecl install mongodb
Depois disso você deve colocar a seguinte string
extension=mongodb.so
Dentro do seu php.ini
Primeiramente você precisa definir uma string de conexão.
O formato para strings de conexão é:
mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]]
Para mais informações consulte o link: https://docs.mongodb.com/manual/reference/connection-string/
Uma vez definido, você precisa instanciar um novo adaptador:
use MongoDriver Adapter ;
// Enstablish a connection.
$ adapter = new Adapter ();
$ adapter -> connect ( CONNECTION_STRING );
Neste ponto você deseja selecionar um Banco de Dados onde realizar sua consulta:
$ adapter -> selectDB ( ' myDatabase ' );
NOTA: você pode selecionar um banco de dados diretamente no construtor passando o nome do banco de dados como segundo parâmetro.
Uma vez selecionado o banco de dados, podemos simplesmente consultar a coleção que desejamos:
$ items = $ adapter -> find ( ' myCollection ' );
Você também pode filtrar sua 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 );
Se você deseja inserir um item, basta passar um array ou objeto para a função insert especificando a coleção:
$ item = new Person ();
$ item -> name = ' Thomas ' ;
$ item -> surname = ' Cocchiara ' );
// or: $item = ['name' => 'Thomas', 'surname' => 'Cocchiara'];
$ adapter -> insert ( ' people ' , $ item );
Espero que vocês considerem esta biblioteca útil.
Por favor, compartilhe e me dê um feedback :)
Tomás