Si has llegado a esta entrada desde un buscador, debes tener en cuenta que esta guía está pensada para los servicios de guebs.com. Los conceptos generales son válidos para cualquier uso de la extensión MongoDB php, pero los pasos particulares están pensados para los servicios de guebs.com.
1.- Incluir en PHP la extensión mongodb
En guebs.com tienes dicha extensión disponible a partir de php 5.6 . En las versiones inferiores a ésta no la encontrarás disponible. Para ello sólo debes dirigirte a la sección de configuración php y añadir la extensión.
Cuando añadas la extensión la zona de configuración "Añadir parámetro" debe quedar del siguiente modo:
Entonces debes pulsar sobre Guardar. Hecho esto, si obtienes el resultado de un phpinfo encontrarás que ya tienes mongodb activado para tu php
2.- Usar la librería oficial para php de MongoDB
Para hacer uso de esta librería sólo debes usar composer, que está disponible de serie en todos nuestros servicios. La documentación oficial se encuentra en la siguiente dirección web:
https://github.com/mongodb/mongo-php-library
https://docs.mongodb.com/php-library/master/
Lo primero que debemos hacer es acceder via ssh a nuestro plan de alojamiento (aunque también puedes subir tus archivos si ya dispones de ellos a través de cualquier otro método)
Una vez hayamos accedido debemos posicionarnos en la raíz del documento en el cual estarán nuestros archivos públicos. Típicamente esta raíz será public_html. En este punto usaremos composer:
cd public_html ; /opt/php7.0/bin/php -dextension=mongodb.so /opt/cpanel/composer/bin/composer require mongodb/mongodb
El comando está pensado para un sitio que usa php7.0. Si usas otro php deberás establecer otra ruta para php. Por ejemplo si usaras php7.1 deberás usar /opt/php7.1/bin/php. En este punto ya estamos en condiciones de realizar una conexión a una base de datos MongoDB y a sus colecciones.
3.- Establecer una conexión a la base de datos desde PHP
En el archivo donde vayamos a hacer la conexión, nos aseguramos de que la librería anterior está cargada:
require 'vendor/autoload.php';
Hecho esto podemos ya establecer la conexión. Usaremos el método de conectar a través de una connectionString (https://docs.mongodb.com/manual/reference/connection-string/) y las clases de la MongoDB php library (https://docs.mongodb.com/php-library/master/)
El siguiente código se ocupa de insertar un documento en una colección de una base de datos:
<?php
require 'vendor/autoload.php' ;
$uri="mongodb://usuario:password@host_base_datos/base_de_datos?ssl=false";
$client=new MongoDB\Client($uri);
$collection = $client->base_de_datos->productos;
$result = $collection->insertOne( [ 'item' => 'producto1', 'cantidad' => '200' ] );
echo "Inserted with Object ID '{$result->getInsertedId()}'";
?>
- El código está configurado para no usar ssl, pero es preferible activarlo si está disponible mediante ssl=true
- Si productos no existiera se crearía automáticamente en la base de datos, lo mismo para cualquiera de los campos.
Hay más información básica y avanzada en las siguientes direcciones web:
http://php.net/manual/es/mongodb.tutorial.library.php
https://github.com/mongodb/mongo-php-library
https://docs.mongodb.com/php-library/master/
Extra: Ejemplo de conexión con MongoDB-Driver
<?php
use \MongoDB\Driver\Manager;
use \MongoDB\Driver\BulkWrite;
use \MongoDB\Driver\Query;
$host = 'mongodb.guebs.net:27017';
$usr = 'USUARIO';
$db = 'NOMBRE DE BASE DE DATOS';
$pass = 'CONTRASEA';
$collection = 'NONBRE DE LA COLECCION';
// Iniciar conexion
$con = new Manager(sprintf('mongodb://%s:%s@%s/%s', $usr, $pass, $host, $db));
// Definir namespace
$namespace = "$db.$collection";
// Obtener todos los registros
if (($res = $con->executeQuery($namespace, new Query([], [])))) {
var_dump($res->toArray());
}
// Insertar un nuevo registro
$bw = new BulkWrite();
$bw->insert(['entry'=>time()]);
$con->executeBulkWrite($namespace, $bw);
?>
Muchas gracias
wey neta te rifaste ,busque en mas lados y solo el tuyo sirvió