Uso de la API MongoDB con Oracle Autonomous Database on Dedicated Exadata Infrastructure
La API de Oracle Database para MongoDB convierte el protocolo de transferencia MongoDB en sentencias SQL que ejecuta Oracle Database. Permite a los desarrolladores que tienen juegos de aptitudes MongoDB escribir aplicaciones de almacén de documentos JSON para Oracle Database que utilizan controladores y herramientas que entienden el protocolo MongoDB. Consulte Visión general de Oracle Database API para MongoDB en Oracle Database API para MongoDB para obtener una visión general detallada de esta API.
Activar API MongoDB
Puede activar la API MongoDB para una instancia de Autonomous Database desde la consola de OCI o manualmente mediante Oracle REST Data Services (ORDS).
Para utilizar la API MongoDB con una instancia de Autonomous Database, debe instalar y configurar Oracle REST Data Services (ORDS) gestionado por el cliente por separado y la versión de ORDS debe ser 22.3 o posterior. Consulte Oracle API for MongoDB Support en la Guía de instalación y configuración de Oracle REST Data Services para conocer los conceptos arquitectónicos de esta API.
- En la página Detalles de Autonomous Database, seleccione el separador Configuración de herramientas.
- Haga clic en Editar configuración de herramienta.
- En la fila API MongoDB, seleccione en la columna Activar herramienta para mostrar Activada.
- Haga clic en Aplicar.
También puede activar la API MongoDB al aprovisionar o clonar una instancia seleccionando Mostrar opciones avanzadas y seleccionando el separador Herramientas.
-
Instale y configure ORDS mediante el comando
ords install adb
.Consulte Instalación y configuración de ORDS gestionados por el cliente en Autonomous Database en la Guía de instalación y configuración de Oracle REST Data Services para obtener más información.
- Cree un usuario habilitado para ORDS.
- Conéctese a ORDS mediante el shell MongoDB.
Para ver una demostración de los pasos anteriores, consulte Introducción en la Guía de instalación y configuración de Oracle REST Data Services.
Conectar aplicaciones MongoDB
Después de activar la API MongoDB, puede crear un usuario MongoDB y conectarse a Autonomous Database con su cadena de conexión.
Con la cadena de conexión de API MongoDB, puede utilizar el shell MongoDB, que es una utilidad de línea de comandos, para conectar y consultar los datos.
- En la página Detalles de Autonomous Database, seleccione el separador Configuración de herramientas.
- En la fila API de MongoDB, en URL de acceso, haga clic en Copiar.
Si utiliza la API MongoDB en Autonomous Database en Exadata Cloud@Customer, su equipo de red/DNS debe asegurarse de que cualquier nombre de host de cadena de conexión MongoDB se resuelva en el SCAN del cluster. Sin esto, los clientes MongoDB no podrán conectarse a la base de datos. Puede permitir conexiones a todas las instancias de Autonomous Database del cluster mediante el registro de DNS comodín o permitir una instancia de Autonomous Database específica:
Probar conexiones MongoDB
Creación de un usuario de Autonomous Database de prueba para MongoDB
Puede crear un usuario de prueba o un usuario autenticado de forma similar para fines de prueba.
- Abra la consola de OCI para Autonomous Database.
- Haga clic en Acciones de base de datos.
- En la pantalla de inicio de Database Actions, haga clic en Administration > Database Users.
- Haga clic en + Crear usuario en la página Usuarios de base de datos.
- Introduzca un nombre de usuario y una contraseña para el usuario de prueba. Haga clic en Acceso web y defina la Cuota en DATA de tablespace.
- Haga clic en el separador Granted Roles (Roles otorgados).
- Además de los roles por defecto, seleccione y agregue el rol
SODA_APP
para el usuario. - Haga clic en Crear usuario.
Prueba de la conexión mediante la línea de comandos
- Conéctese como usuario de prueba. Siga los pasos del ejemplo anterior para obtener instrucciones.
$ mongosh --tls --tlsAllowInvalidCertificates 'mongodb://TESTUSER:<PASSWORD>@<database URL>. <OCI region>.oraclecloudapps.com:27017/admin?authMechanism=PLAIN&authSource=$external&ssl=true&loadBalanced=false' Current Mongosh Log ID: 614c9e2a01e3575c8c0b2ec7 Connecting to: mongodb://TESTUSER:<PASSWORD>@<database URL>.<OCIregion>.oraclecloudapps.com:27017/admin? authMechanism=PLAIN&authSource=$external&tls=true&loadBalanced=false Using MongoDB: 3.6.2 Using Mongosh: 1.0.7 For mongosh info see: https://docs.mongodb.com/mongodb-shell/admin > show dbs testuser 0 B >
Note:
Utilice la codificación porcentual de URI para reemplazar cualquier carácter reservado en su URI de cadena de conexión, en particular, los caracteres en su nombre de usuario y contraseña. Estos son los caracteres reservados y sus codificaciones porcentuales:
!
#
$
%
&
'
(
)
*
+
%21
%23
%24
%25
%26
%27
%28
%29
%2A
%2B
,
/
:
;
=
?
@
[
]
%2C
%2F
%3A
%3B
%3D
%3F
%40
%5B
%5D
Por ejemplo, si el nombre de usuario es
RUTH
y la contraseña es@least1/2#?
, la cadena de conexión MongoDB al servidor<server>
podría tener este aspecto:'mongodb://RUTH:%40least1%2F2%23%3F@<server>:27017/ruth/ ...'
Según las herramientas o los controladores que utilice, es posible que pueda proporcionar un nombre de usuario y una contraseña como parámetros independientes, en lugar de como parte de una cadena de conexión URI. En ese caso, es probable que no necesite codificar los caracteres reservados que contienen.
Consulte también:
- Cree una recopilación e inserte documentos en la recopilación.
testuser> show collections testuser> db.createCollection( 'fruit' ) { ok: 1 } testuser> show collections fruit testuser> db.fruit.insertOne( {name:"orange", count:42} ) { acknowledged: true, insertedId: ObjectId("614ca31fdab254f63e4c6b47") } testuser> db.fruit.insertOne( {name:"apple", count:12, color: "red"} ) { acknowledged: true, insertedId: ObjectId("614ca340dab254f63e4c6b48") } testuser> db.fruit.insertOne( {name:"pear", count:5} ) { acknowledged: true, insertedId: ObjectId("614ca351dab254f63e4c6b49") } testuser>
- Consultar la recopilación mediante un cliente SQL como Database Actions.
SELECT f.json_document.name, f.json_document.count, f.json_document.color FROM fruit f;
Prueba de conexión mediante una aplicación Node.js
-
Descargue Node.js. Si ya ha descargado o instalado Node.js para su entorno, puede omitir este paso.
$ wget https://nodejs.org/dist/latest-v14.x/node-v14.17.5-linux-x64.tar.xz
-
Extraiga el contenido del archivo Node,js. Si ya ha descargado o instalado Node.js para su entorno, puede omitir este paso.
$ tar -xf node-v14.17.5-linux-x64.tar.xz
-
Configure la variable del entorno
PATH
. Si ya ha descargado o instalado Node.js para su entorno, puede omitir este paso.$ export PATH="`pwd`"/node-v14.17.5-linux-x64/bin:$PATH
-
Pruebe su conexión con un ejemplo de Javascript.
-
Crear Nuevo Directorio.
$ mkdir autonomous_mongodb $ cd autonomous_mongodb $ npm init –y
-
Instale la dependencia de mongodb.
$ npm install mongodb
-
Cree una aplicación JavaScript denominada
connect.js
.const { MongoClient } = require("mongodb"); const uri = "mongodb://TESTUSER:<PASSWORD>@<Database URI>.<OCI region>.oraclecloudapps.com:27017/admin?authMechanism=PLAIN&authSource=$external&ssl=true&loadBalanced=false"; const client = new MongoClient(uri); async function run() { try { await client.connect(); const database = client.db('admin'); const movies = database.collection('movies'); // Insert a movie const doc = { title: 'Back to the Future', year: 1985, genres: ['Adventure', 'Comedy', 'Sci-Fi'] } const result = await movies.insertOne(doc); // Query for a movie that has the title 'Back to the Future' :) const query = { title: 'Back to the Future' }; const movie = await movies.findOne(query); console.log(movie); } finally { // Ensures that the client will close when you finish/error await client.close(); } } run().catch(console.dir);
Note:
Utilice la codificación porcentual de URI para reemplazar cualquier carácter reservado en su URI de cadena de conexión, en particular, los caracteres en su nombre de usuario y contraseña. Estos son los caracteres reservados y sus codificaciones porcentuales:
!
#
$
%
&
'
(
)
*
+
%21
%23
%24
%25
%26
%27
%28
%29
%2A
%2B
,
/
:
;
=
?
@
[
]
%2C
%2F
%3A
%3B
%3D
%3F
%40
%5B
%5D
Por ejemplo, si el nombre de usuario es
RUTH
y la contraseña es@least1/2#?
, la cadena de conexión MongoDB al servidor<server>
podría tener este aspecto:'mongodb://RUTH:%40least1%2F2%23%3F@<server>:27017/ruth/ ...'
Según las herramientas o los controladores que utilice, es posible que pueda proporcionar un nombre de usuario y una contraseña como parámetros independientes, en lugar de como parte de una cadena de conexión URI. En ese caso, es probable que no necesite codificar los caracteres reservados que contienen.
Consulte también:
-
Ejecute el ejemplo. La salida debe tener un aspecto similar al siguiente.
$ node connect { _id: new ObjectId("611e3266005202371acf27c1"), title: 'Back to the Future', year: 1985, genres: [ 'Adventure', 'Comedy', 'Sci-Fi' ] }
-
For information about Oracle's commitment to accessibility, visit the Oracle Accessibility Program website at http://www.oracle.com/pls/topic/lookup?ctx=acc&id=docacc.
Acceso a Oracle Support
El acceso y uso por parte del cliente de los servicios de Oracle Support se llevará a cabo conforme a las condiciones especificadas en la orden de Oracle relativa a los servicios correspondientes.