Utilizza MongoDB API con Oracle Autonomous AI Database sull'infrastruttura Exadata dedicata
Oracle Database API for MongoDB converte il protocollo wire di MongoDB in istruzioni SQL eseguite da Oracle Database. Consente agli sviluppatori che dispongono di set di competenze MongoDB di scrivere applicazioni JSON per l'archiviazione di documenti per Oracle Database che utilizzano driver e strumenti che comprendono il protocollo MongoDB. Per una panoramica dettagliata di questa API, consulta la panoramica di Oracle Database API for MongoDB in Oracle Database API for MongoDB.
Abilita API MongoDB
Puoi abilitare l'API MongoDB per un Autonomous AI Database dalla console OCI o manualmente utilizzando Oracle REST Data Services (ORDS).
Per utilizzare l'API MongoDB con un Autonomous AI Database, devi installare e configurare Oracle REST Data Services (ORDS) gestito dal cliente separatamente e la versione di ORDS deve essere la 22.3 o successiva. Per informazioni sui concetti architetturali di questa API, vedere Oracle API for MongoDB Support in Oracle REST Data Services Installation and Configuration Guide.
Per abilitare l'API MongoDB dalla console OCI, effettuare le operazioni riportate di seguito.
-
Nella pagina Dettagli di Autonomous AI Database selezionare la scheda Configurazione degli strumenti.
-
Fare clic su Modifica configurazione strumento.
-
Nella riga API MongoDB, selezionare la colonna Abilita strumento per visualizzare Abilitato.
-
Fare clic su Applica. Lo stato del ciclo di vita viene modificato in aggiornamento fino a quando MongoDB non è abilitato.
È inoltre possibile abilitare l'API MongoDB durante il provisioning o la copia di un'istanza selezionando Mostra opzioni avanzate e selezionando la scheda Strumenti.
Per abilitare manualmente MongoDB:
-
Installare e configurare ORDS utilizzando il comando
ords install adb.Per ulteriori dettagli, vedere Installing and Configuring Customer Managed ORDS on Autonomous AI Database in Oracle REST Data Services Installation and Configuration Guide.
-
Creare un utente abilitato per ORDS.
-
Connettersi a ORDS utilizzando la shell MongoDB.
Per una dimostrazione dei passi riportati sopra, fare riferimento alla Guida introduttiva in Oracle REST Data Services Installation and Configuration Guide.
Connettere le applicazioni MongoDB
Dopo aver abilitato l'API MongoDB, è possibile creare un utente MongoDB e connettersi a Autonomous AI Database con la relativa stringa di connessione.
Con la stringa di connessione API MongoDB è possibile utilizzare la MongoDB Shell, una utility della riga di comando, per connettere ed eseguire query sui dati.
È possibile recuperare la relativa stringa di connessione dalla console di Oracle Cloud Infrastructure. Per recuperare la stringa di connessione API MongoDB:
-
Nella pagina Dettagli di Autonomous AI Database selezionare la scheda Configurazione degli strumenti.
-
Nella riga API MongoDB, in URL di accesso fare clic su Copia.
Se stai utilizzando l'API MongoDB su Autonomous AI Database su Exadata Cloud@Customer, il tuo team di rete/DNS deve assicurarsi che qualsiasi nome host della stringa di connessione MongoDB venga risolto nello SCAN del cluster. Senza questo, i client MongoDB non saranno in grado di connettersi al database. Puoi consentire le connessioni a tutti i database AI autonomi all'interno del cluster utilizzando il record DNS con caratteri jolly o consentire un Autonomous AI Database specifico:
Test delle connessioni MongoDB
Creare un utente di test di Autonomous AI Database per MongoDB
È possibile creare un utente di prova o un utente autenticato in modo simile a scopo di test.
-
Aprire OCI Console per Autonomous AI Database.
-
Fare clic su Azioni database.
-
Nel Launchpad Azioni database fare clic su Amministrazione > Utenti database.
-
Fare clic su + Crea utente nella pagina Utenti database.
-
Immettere un Nome utente e una Password per l'utente di test. Fare clic su Accesso Web e impostare la quota sulla tablespace DATA.
-
Fare clic sulla scheda Ruoli concessi.
-
Oltre ai ruoli predefiniti, selezionare e aggiungere il ruolo
SODA_APPper l'utente. -
Fare clic su Crea utente,
Test della connessione mediante la riga di comando
-
Eseguire il login come utente di test. Seguire le istruzioni riportate nell'esempio precedente.
$ 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** > -
Creare una raccolta e inserire documenti nella raccolta.
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> -
Eseguire una query sulla raccolta utilizzando un client SQL, ad esempio Database Actions.
SELECT f.json_document.name, f.json_document.count, f.json_document.color FROM fruit f;
Test della connessione mediante un'applicazione Node.js
-
Scarica Node.js. Se hai già scaricato o installato Node.js per il tuo ambiente, puoi saltare questo passaggio.
$ wget https://nodejs.org/dist/latest-v14.x/node-v14.17.5-linux-x64.tar.xz -
Estrarre il contenuto dell'archivio Node,js. Se hai già scaricato o installato Node.js per il tuo ambiente, puoi saltare questo passaggio.
$ tar -xf node-v14.17.5-linux-x64.tar.xz -
Configurare la variabile d'ambiente
PATH. Se hai già scaricato o installato Node.js per il tuo ambiente, puoi saltare questo passaggio.$ export PATH="`pwd`"/node-v14.17.5-linux-x64/bin:$PATH -
Prova la tua connessione con un esempio di Javascript.
a. Crea una nuova directory.
$ mkdir autonomous_mongodb $ cd autonomous_mongodb $ npm init -yb. Installare la dipendenza mongodb.
$ npm install mongodbc. Creare un'applicazione JavaScript denominata
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);
d. Eseguire l'esempio. L'output dovrebbe essere simile al seguente.
$ node connect
{
_id: new ObjectId("611e3266005202371acf27c1"),
title: 'Back to the Future',
year: 1985,
genres: [ 'Adventure', 'Comedy', 'Sci-Fi' ]
}
Codifica percentuale URI per caratteri riservati
Utilizzare la codifica percentuale dell'URI per sostituire eventuali caratteri riservati nell'URI della stringa di connessione, in particolare i caratteri nel nome utente e nella password. Questi sono i caratteri riservati e la loro percentuale di codifiche:
| Carattere riservato | Codifica percentuale |
|---|---|
| ! | %21 |
| # | %23 |
| $ | %24 |
| % | %25 |
| & | %26 |
| ’ | %27 |
| ( | %28 |
| ) | %29 |
| * | %2A |
| + | %2B |
| , | %2C |
| / | %2F |
| : | %3A |
| ; | %3B |
| = | %3D |
| ? | %3F |
| @ | %40 |
| [ | %5B |
| ] | %5D |
Ad esempio, se il nome utente è RUTH e la password è @least1/2#?, la stringa di connessione MongoDB al server <server> potrebbe essere simile alla seguente:
'mongodb://RUTH:%40least1%2F2%23%3F@<server>:27017/ruth/ ...'
A seconda degli strumenti o dei driver utilizzati, potrebbe essere possibile fornire un nome utente e una password come parametri separati, anziché come parte di una stringa di connessione URI. In questo caso probabilmente non sarà necessario codificare i caratteri riservati che contengono.