MongoDB-API mit Oracle Autonomous Database on Dedicated Exadata Infrastructure verwenden
Die Oracle Database-API für MongoDB übersetzt das Wire-Protokoll MongoDB in SQL-Anweisungen, die von Oracle Database ausgeführt werden. Damit können Entwickler, die über MongoDB-Skills 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 für MongoDB in Oracle Database-API für MongoDB.
MongoDB-API aktivieren
Sie können die MongoDB-API für eine Autonomous Database über die OCI-Konsole oder manuell mit Oracle REST Data Services (ORDS) aktivieren.
Um die MongoDB-API mit einer Autonomous Database zu verwenden, müssen Sie vom Kunden verwaltete Oracle REST Data Services (ORDS) separat installieren und konfigurieren. 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.
- Wählen Sie auf der Seite Autonomous Database Details 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 Übernehmen.
Sie können die MongoDB-API auch aktivieren, wenn Sie eine Instanz bereitstellen oder klonen, indem Sie Erweiterte Optionen anzeigen auswählen und die Registerkarte Extras auswählen.
-
Installieren und konfigurieren Sie ORDS mit dem Befehl
ords install adb
.Weitere Einzelheiten finden Sie unter Installing and Configuring Customer Managed ORDS on Autonomous Database im Oracle REST Data Services Installation and Configuration Guide.
- 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 zu Autonomous Database mit der zugehörigen Verbindungszeichenfolge herstellen.
Mit der API-Verbindungszeichenfolge MongoDB können Sie Ihre Daten mit der MongoDB Shell (einem Befehlszeilenutility) verbinden und abfragen.
- Wählen Sie auf der Seite Autonomous Database Details die Registerkarte Toolkonfiguration aus.
- Klicken Sie in der Zeile MongoDB API unter Zugriffs-URL auf Kopieren.
Wenn Sie die MongoDB-API in Autonomous Database auf Exadata Cloud@Customer verwenden, muss Ihr Netzwerk-/DNS-Team sicherstellen, dass jeder Hostname der 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 Autonomous Databases im Cluster mit einem Platzhalter-DNS-Datensatz zulassen oder eine bestimmte Autonomous Database zulassen:
MongoDB-Verbindungen testen
Autonomous Database-Testbenutzer 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 Autonomous Database.
- Klicken Sie auf Datenbankaktionen.
- 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_APP
für den Benutzer aus, und fügen Sie sie hinzu. - Klicken Sie auf Benutzer erstellen.
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 >
Hinweis:
Verwenden Sie die prozentuale URI-Kodierung, um reservierte Zeichen in Ihrer Verbindungszeichenfolge-URI zu ersetzen – insbesondere Zeichen in Ihrem Benutzernamen und Kennwort. Dies sind die reservierten Zeichen und ihre Prozentcodierungen:
!
#
$
%
&
'
(
)
*
+
%21
%23
%24
%25
%26
%27
%28
%29
%2A
%2B
,
/
:
;
=
?
@
[
]
%2C
%2F
%3A
%3B
%3D
%3F
%40
%5B
%5D
Beispiel: Wenn Ihr Benutzername
RUTH
lautet und Ihr Kennwort@least1/2#?
lautet, könnte die Verbindungszeichenfolge MongoDB 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.
Siehe auch:
- 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
-
Laden Sie Node.js herunter. Wenn Sie Node.js für Ihre Umgebung bereits 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 für Ihre Umgebung bereits 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 für Ihre Umgebung bereits 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.
-
Neues Verzeichnis erstellen.
$ mkdir autonomous_mongodb $ cd autonomous_mongodb $ npm init –y
-
Installieren Sie die Mangodb-Abhängigkeit.
$ npm install mongodb
-
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);
Hinweis:
Verwenden Sie die prozentuale URI-Kodierung, um reservierte Zeichen in Ihrer Verbindungszeichenfolge-URI zu ersetzen – insbesondere Zeichen in Ihrem Benutzernamen und Kennwort. Dies sind die reservierten Zeichen und ihre Prozentcodierungen:
!
#
$
%
&
'
(
)
*
+
%21
%23
%24
%25
%26
%27
%28
%29
%2A
%2B
,
/
:
;
=
?
@
[
]
%2C
%2F
%3A
%3B
%3D
%3F
%40
%5B
%5D
Beispiel: Wenn Ihr Benutzername
RUTH
lautet und Ihr Kennwort@least1/2#?
lautet, könnte die Verbindungszeichenfolge MongoDB 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.
Siehe auch:
-
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' ] }
-
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.
Zugang zu Oracle Support
Der Zugriff auf und die Nutzung von Oracle-Supportservices durch Oracle-Kunden erfolgt gemäß den in der jeweiligen Oracle-Bestellung für die entsprechenden Services angegebenen Vertragsbedingungen.