Estoy usando el controlador mongodb para conectarme a mongodb a través de PHP. No pude conectarme a mongodb usando mongoClient().
Versiones de mi php y mongodb
php --versión de salida mongo --versión de salida
entonces, traté de conectarlo a través del controlador mongodb. Aquí está el código...
$connection = new MongoDB\Driver\Manager("mongodb://localhost:27017"); $bulk = new MongoDB\Driver\BulkWrite; $bulk->insert(["number"=>$Number, "created"=>time()]); $connection-> executeBulkWrite("dbName.collectionName", $bulk);
Esto funciona bien para insertar los datos en mongodb.
Ahora, quiero obtener el no. de filas de una colección en la base de datos pero no pudo encontrar ninguna solución.
Probé este código para recuperar datos de mongodb:
try { $connection = new MongoDB\Driver\Manager("mongodb://localhost:27017"); $filter = ["number"=> $Number]; $query_mongo = new MongoDB\Driver\Query($filter); $mongoResult = $connection->executeQuery("dbName.collectionName", $query_mongo); $result = current($mongoResult->toArray()); var_dump($result); } catch (MongoDB\Driver\Exception\Exception $e) { $filename = basename(__FILE__); echo "The $filename script has experienced an error.\n"; echo "It failed with the following exception:\n"; echo "Exception:", $e->getMessage(), "\n"; echo "In file:", $e->getFile(), "\n"; echo "On line:", $e->getLine(), "\n"; }
Pero recibo este error en la consola del navegador...
parsererror,SyntaxError: Unexpected token o in JSON at position 0,object(stdClass)#26 (3) { ["_id"]=> object(MongoDB\BSON\ObjectID)#25 (1) { ["oid"]=> string(24) "587c6e37e2d11616411c90a2" } ["number"]=> string(10) "123456" ["created"]=> int(1484549687) }
Q1. ¿Puedo deshacerme de este Mongodb\Driver\Manager y usar el antiguo mongoClient y cómo?
Q2. quiero conseguir el no. de filas en la tabla. ¿Cómo puedo hacer eso usando este Driver\Manager?
Q3. ¿Alguna solución al error dado?
Gracias por adelantado...