MongoDB-API mit Oracle Autonomous AI Database auf dedizierter Exadata-Infrastruktur verwenden
Oracle Database API for MongoDB übersetzt das MongoDB-Drahtprotokoll in SQL-Anweisungen, die von Oracle Database ausgeführt werden. Damit können Entwickler, die über MongoDB-Kenntnisse verfügen, JSON-Dokumentspeicheranwendungen für Oracle Database schreiben, die Treiber und Tools verwenden, die das MongoDB-Protokoll verstehen. Einen detaillierten Überblick über diese API finden Sie unter Überblick über Oracle Database API for MongoDB in Oracle Database API for MongoDB.
MongoDB-API aktivieren
Sie können die MongoDB-API für eine autonome KI-Datenbank über die OCI-Konsole oder manuell mit Oracle REST Data Services (ORDS) aktivieren.
Um die MongoDB-API mit einer autonomen KI-Datenbank zu verwenden, müssen Sie vom Kunden verwaltete Oracle REST Data Services (ORDS) separat installieren und konfigurieren, und die ORDS-Version muss 22.3 oder höher sein. Die Architekturkonzepte dieser API finden Sie unter Oracle API for MongoDB Support in der Dokumentation Oracle REST Data Services Installation and Configuration Guide.
So aktivieren Sie die MongoDB-API über die OCI-Konsole:
-
Wählen Sie auf der Seite Details der autonomen KI-Datenbank die Registerkarte Toolkonfiguration aus.
-
Klicken Sie auf Toolkonfiguration bearbeiten.
-
Wählen Sie in der Zeile MongoDB-API in der Spalte Tool aktivieren die Option Aktiviert aus.
-
Klicken Sie auf Apply. Der Lebenszyklusstatus ändert sich in Aktualisieren, bis MongoDB aktiviert ist.
Sie können die MongoDB-API auch beim Provisioning oder Klonen einer Instanz aktivieren, indem Sie Erweiterte Optionen anzeigen auswählen und die Registerkarte Extras auswählen.
So aktivieren Sie MongoDB manuell:
-
Installieren und konfigurieren Sie ORDS mit dem Befehl
ords install adb.Weitere Einzelheiten finden Sie unter Vom Kunden verwaltete ORDS auf einer autonomen KI-Datenbank installieren und konfigurieren in der Oracle REST Data Services - Installations- und Konfigurationsdokumentation.
-
Einen ORDS-fähigen Benutzer erstellen.
-
Stellen Sie mit der MongoDB-Shell eine Verbindung zu ORDS her.
Eine Demonstration der oben genannten Schritte finden Sie unter Getting Started in Oracle REST Data Services Installation and Configuration Guide.
MongoDB-Anwendungen verbinden
Nachdem die MongoDB-API aktiviert wurde, können Sie einen MongoDB-Benutzer erstellen und eine Verbindung zur autonomen KI-Datenbank mit der zugehörigen Verbindungszeichenfolge herstellen.
Mit der MongoDB-API-Verbindungszeichenfolge können Sie Ihre Daten mit der MongoDB Shell (einem Befehlszeilenutility) verbinden und abfragen.
Sie können die zugehörige Verbindungszeichenfolge aus der Oracle Cloud Infrastructure-Konsole abrufen. So rufen Sie die MongoDB-API-Verbindungszeichenfolge ab:
-
Wählen Sie auf der Seite Details der autonomen KI-Datenbank die Registerkarte Toolkonfiguration aus.
-
Klicken Sie in der Zeile MongoDB-API unter Zugriffs-URL auf Kopieren.
Wenn Sie die MongoDB-API in der autonomen KI-Datenbank auf Exadata Cloud@Customer verwenden, muss Ihr Netzwerk-/DNS-Team sicherstellen, dass der Hostname einer MongoDB-Verbindungszeichenfolge in dem SCAN des Clusters aufgelöst wird. Andernfalls können MongoDB-Clients keine Verbindung zur Datenbank herstellen. Sie können entweder Verbindungen zu allen autonomen KI-Datenbanken im Cluster mit einem Platzhalter-DNS-Datensatz zulassen oder eine bestimmte autonome KI-Datenbank zulassen:
MongoDB-Verbindungen testen
Autonome KI-Testdatenbankbenutzer für MongoDB erstellen
Sie können einen Testbenutzer oder einen ähnlich authentifizierten Benutzer zu Testzwecken erstellen.
-
Öffnen Sie die OCI-Konsole für Ihre autonome KI-Datenbank.
-
Klicken Sie auf Database Actions.
-
Klicken Sie im Database Actions-Launchpad auf Administration > Datenbankbenutzer.
-
Klicken Sie auf der Seite "Database Users" auf + Create User.
-
Geben Sie einen Benutzernamen und ein Passwort für den Testbenutzer ein. Klicken Sie auf Webzugriff, und legen Sie die Quota für Tablespace DATA fest.
-
Klicken Sie auf die Registerkarte Erteilte Rollen.
-
Wählen Sie zusätzlich zu den Standardrollen die Rolle
SODA_APPfür den Benutzer aus, und fügen Sie sie hinzu. -
Klicken Sie auf Create User.
Verbindung mit der Befehlszeile testen
-
Melden Sie sich als Testbenutzer an. Befolgen Sie die Schritte im vorherigen Beispiel für Anweisungen.
$ 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** > -
Erstellen Sie eine Sammlung, und fügen Sie Dokumente in Ihre Sammlung ein.
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> -
Fragen Sie die Collection mit einem SQL-Client ab, wie Database Actions.
SELECT f.json_document.name, f.json_document.count, f.json_document.color FROM fruit f;
Verbindung mit einer Node.js-Anwendung testen
-
Node.js herunterladen. Wenn Sie Node.js bereits für Ihre Umgebung heruntergeladen oder installiert haben, können Sie diesen Schritt überspringen.
$ wget https://nodejs.org/dist/latest-v14.x/node-v14.17.5-linux-x64.tar.xz -
Extrahieren Sie den Inhalt des Node,js-Archivs. Wenn Sie Node.js bereits für Ihre Umgebung heruntergeladen oder installiert haben, können Sie diesen Schritt überspringen.
$ tar -xf node-v14.17.5-linux-x64.tar.xz -
Konfigurieren Sie die Umgebungsvariable
PATH. Wenn Sie Node.js bereits für Ihre Umgebung heruntergeladen oder installiert haben, können Sie diesen Schritt überspringen.$ export PATH="`pwd`"/node-v14.17.5-linux-x64/bin:$PATH -
Testen Sie Ihre Verbindung mit einem Javascript-Beispiel.
a. Neues Verzeichnis erstellen.
$ mkdir autonomous_mongodb $ cd autonomous_mongodb $ npm init -yb. Installieren Sie die Mangodb-Abhängigkeit.
$ npm install mongodbc. Erstellen Sie eine JavaScript-Anwendung namens
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. Führen Sie das Beispiel aus. Die Ausgabe sollte der folgenden ähneln.
$ node connect
{
_id: new ObjectId("611e3266005202371acf27c1"),
title: 'Back to the Future',
year: 1985,
genres: [ 'Adventure', 'Comedy', 'Sci-Fi' ]
}
URI-Prozentcodierung für reservierte Zeichen
Verwenden Sie URI-Prozentcodierung, um reservierte Zeichen in Ihrer Verbindungszeichenfolge-URI zu ersetzen - insbesondere Zeichen in Ihrem Benutzernamen und Kennwort. Dies sind die reservierten Zeichen und ihre Prozentcodierungen:
| Reserviertes Zeichen | Prozentcodierung |
|---|---|
| ! | %21 |
| # | %23 |
| $ | %24 |
| % | %25 |
| & | %26 |
| ’ | %27 |
| ( | %28 |
| ) | %29 |
| * | %2A |
| + | %2B |
| , | %2C |
| / | %2F |
| : | %3A |
| ; | %3B |
| = | %3D |
| ? | %3F |
| @ | %40 |
| [ | %5 Mrd. |
| ] | %5D |
Beispiel: Wenn Ihr Benutzername RUTH lautet und Ihr Kennwort @least1/2#? lautet, könnte die MongoDB-Verbindungszeichenfolge für Server <server> wie folgt aussehen:
'mongodb://RUTH:%40least1%2F2%23%3F@<server>:27017/ruth/ ...'
Abhängig von den Tools oder Treibern, die Sie verwenden, können Sie einen Benutzernamen und ein Passwort als separate Parameter anstelle einer URI-Verbindungszeichenfolge angeben. In diesem Fall müssen Sie wahrscheinlich keine reservierten Zeichen codieren, die sie enthalten.