Oracle Database-API für MongoDB verwenden

Mit der Oracle Database-API für MongoDB können Sie mit MongoDB-Sprachtreibern und -Tools eine Verbindung zu Oracle Autonomous Database herstellen.

Oracle Database API for MongoDB nutzt die konvergierten Datenbankfunktionen einer Autonomous Database, um mehrere Datentypen, einschließlich JSON-Daten, in einer einzigen Datenbank zu verwalten. Beispiel: Diese konvergierten Datenbankfunktionen ermöglichen die Abfrage oder Aktualisierung von JSON-Daten mit SQL.

Hinweis

MongoDB erfordert, dass Sie den Netzwerkzugriff für die Verwendung von ACLs konfigurieren oder einen privaten Endpunkt für die Autonomous Database-Instanz definieren.

Weitere Informationen finden Sie unter Oracle Database-API für MongoDB.

Weitere Informationen finden Sie unter Autonomous JSON Database.

Weitere Informationen finden Sie unter Workload-Typen in Autonomous Database.

Themen

Konfigurieren Sie den Zugriff für MongoDB, und aktivieren Sie MongoDB

Mit der Oracle Database-API für MongoDB können Sie eine Oracle Autonomous Database als Datenspeicher verwenden.

Um die API MongoDB zu verwenden, können Sie eine neue Autonomous Database erstellen und konfigurieren oder die Konfiguration einer vorhandenen Autonomous Database ändern.

Hinweis

MongoDB erfordert, dass Sie den Netzwerkzugriff für die Verwendung von ACLs konfigurieren oder einen privaten Endpunkt für die Autonomous Database-Instanz definieren. Neben der Konfiguration des Netzwerkzugriffs müssen Sie die MongoDB-API in der Autonomous Database-Instanz aktivieren.

Zugriff für MongoDB konfigurieren

Um die API MongoDB zu verwenden, können Sie eine neue Autonomous Database erstellen und konfigurieren oder die Konfiguration einer vorhandenen Autonomous Database ändern, indem Sie ACLs konfigurieren oder einen privaten Endpunkt definieren.

Neue Autonomous Database für MongoDB konfigurieren

Befolgen Sie die Schritte unter Autonomous Database bereitstellen oder klonen, bis zu dem Punkt, an dem Sie Ihren Netzwerkzugriffstyp auswählen.

Beschreibung von adb_network_access_acl_provision.png folgt
Beschreibung der Abbildung adb_network_access_acl_provision.png

Um jetzt die Oracle Database-API für MongoDB zu verwenden, konfigurieren Sie den sicheren Zugriff, indem Sie einen der folgenden Netzwerkzugriffstypen auswählen und konfigurieren:

Vorhandene Autonomous Database für MongoDB konfigurieren

Öffnen Sie die Oracle Cloud Infrastructure-Konsole für Ihre Autonomous Database-Instanz.



Hinweis

Um die Oracle Database-API für MongoDB zu verwenden, muss das Netzwerk konfiguriert sein, und der Zugriffstyp muss entweder: Nur sicherer Zugriff von zulässigen IPs und VCNs oder Nur Zugriff auf privaten Endpunkt lauten.

Access-Control-Liste (ACL) einrichten

Weitere Informationen finden Sie unter Access-Control-Listen für eine vorhandene Autonomous Database-Instanz konfigurieren.

Um die ACL für eine IP-Adresse zu konfigurieren, müssen Sie die öffentliche IP-Adresse abrufen. Es gibt verschiedene Möglichkeiten, Ihre öffentliche IP-Adresse zu ermitteln:
  • Klicken Sie im Bereich "Netzwerkzugriff auswählen" auf Meine IP-Adresse hinzufügen. Dadurch wird Ihre IP-Adresse in das Feld Werte kopiert.

  • Nachdem Sie ein VPN deaktiviert haben, verwenden Sie die Website WhatIsMyIP.
  • Nachdem Sie ein VPN deaktiviert haben, verwenden Sie den curl-Befehl: curl -s https://ifconfig.me.
Hinweis

Öffentliche IP-Adressen können sich ändern. Wenn Sie Ihre öffentliche IP-Adresse ändern, müssen Sie die ACL ändern. Wenn Sie nicht auf Ihre Datenbank zugreifen können, prüfen Sie die ACL.

ACLs - Typen und Anwendungsfälle

ACL-Typ Anwendungsfall Kommentar
IP-Adresse Laptops für lokale Entwicklung mit derselben öffentlichen IP-Adresse Der einfachste Weg, um zu beginnen. Jeder Laptop, der über dieses LAN verbunden ist, hat Zugriff auf die Datenbank mit den Datenbankzugangsdaten.
CIDR-Block Laptop für die lokale Entwicklung Verwendet IPv4/32-Notation
IP-Adressen durch Komma getrennt Kleine Anzahl von lokalen Entwicklungs-Laptops, die über verschiedene LANs verbunden sind (mit unterschiedlichen öffentlichen IP-Adressen) Kann mit mehr als 10 Laptops etwas langweilig sein.
CIDR-Block Laptops der lokalen Entwicklung, die mit demselben Subnetz verbunden sind, das aus dem Internet zugänglich ist (jeder Laptop hat seine eigene öffentliche IP-Adresse) Basiert auf der CIDR-Blocknotation. Weitere Informationen siehe den Rechner hier. Beispiel: 89.84.109.0/24 gibt 256 mögliche IP-Adressen von 89.84.109.0 bis 89.84.109.255 zurück
VCN mit CIDR-Block Für Tests, Produktion oder CI/CD-Pipelines, die auf OCI mit eigenen VCN- und Compute-Instanzen gehostet werden OCI-Compartment wird pro Umgebungstyp zugewiesen.
IP-Adresse und VCN mit CIDR-Block kombinieren Lokaler Entwicklungs-Laptop, der auf eine Test-Autonomous Database-Datenbank mit Verbindungen aus der Testumgebung oder CI/CD-Pipeline zugreift Eine häufig verwendete Konfigurationsoption für laufende Entwicklungsarbeiten.

MongoDB-API in Autonomous Database aktivieren

Nachdem Sie den Netzwerkzugriff für die Autonomous Database-Instanz konfiguriert haben, aktivieren Sie die MongDB-API.

So aktivieren Sie die MongoDB-API für eine vorhandene Instanz:

  1. Wählen Sie auf der Detailseite von Autonomous Database die Registerkarte Toolkonfiguration aus.
  2. Klicken Sie auf Toolkonfiguration bearbeiten.
  3. Wählen Sie in der API-Zeile MongoDB in der Spalte Tool aktivieren die Option Aktiviert aus.
  4. 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.

Weitere Informationen finden Sie unter Integrierte Autonomous Database-Tools verwalten.

User Management für MongoDB

Mit der Oracle Database-API für MongoDB können Sie eine Oracle Autonomous Database als Datenspeicher verwenden. Wenn Sie zu diesem Zweck eine vorhandene Autonomous Database verwenden möchten oder müssen, finden Sie hier den Workflow.

Die Oracle Database-API für MongoDB ermöglicht die Zuordnung von Autonomous Database-Objekten zu MongoDB-Objekten wie folgt:

MongoDB-Objekt Oracle Autonomous Database-Objekt
Datenbank Schema
Collection Tabelle
Dokument Dokument (in einer Spalte)

Beispiel: So erstellen Sie eine Collection mit der Oracle Database-API für MongoDB:

  use scott;
  db.createCollection('fruit');

Eine Tabelle mit dem Namen FRUIT wird im Schema SCOTT erstellt.

Wenn Sie eine Verbindung zur Oracle Database-API für MongoDB herstellen, authentifizieren Sie sich mit einem Autonomous Database-Benutzernamen und -Kennwort. Diese authentifizierte Verbindung ruft dann Collections innerhalb des entsprechenden Schemas auf. Dieser Benutzer muss die folgenden Anforderungen erfüllen:

Hinweis

Die Rolle DWROLE in Autonomous Database umfasst unter anderem diese Rollen.

Der Zugriff auf Schemas, für die dem Benutzer keine Berechtigung erteilt wurde, ist nicht zulässig. Beispiel: Der Benutzer SCOTT kann nur auf Collections im Schema SCOTT zugreifen. Es gibt eine Ausnahme. Wenn der authentisierte Benutzer über die Autonomous Database-Berechtigungen CREATE USER, ALTER USER und DROP USER verfügt, kann dieser Benutzer auf jedes ORDS-fähige Schema zugreifen.

Darüber hinaus kann ein Benutzer mit diesen Berechtigungen implizit Schemas erstellen. Wenn der Benutzer eine Collection in einer nicht vorhandenen Datenbank erstellt, wird das Schema automatisch erstellt. Weitere Informationen finden Sie unter Oracle Database-API für MongoDB.

Autonomous Database-Testbenutzer für MongoDB erstellen

Die folgenden Schritte verwenden Database Actions, um einen Testbenutzer mit den richtigen Rollen zu erstellen. Sie können die SQL-Anweisungen auch mit Database Actions SQL oder anderen SQL-Befehlszeilenutilitys direkt ausführen. Weitere Informationen finden Sie unter Benutzer in Autonomous Database erstellen - Verbindung mit Clienttool herstellen.
  1. Öffnen Sie die Oracle Cloud Infrastructure-Konsole für Autonomous Database.
  2. Wählen Sie Datenbankaktionen aus.
  3. Wählen Sie im Database Actions-Launchpad Administration > Datenbankbenutzer.
  4. Wählen Sie auf der Seite "Datenbankbenutzer" die Option + Benutzer erstellen aus.
  5. Geben Sie einen Benutzernamen und ein Kennwort für den Testbenutzer ein. Wählen Sie Webzugriff aus, und legen Sie die ota für Tablespace-DATA fest.
  6. Wählen Sie die Registerkarte Erteilte Rollen aus.
  7. Wählen Sie zusätzlich zu den Standardrollen die Rolle SODA_APP für den Benutzer aus, und hinzufügen Sie sie.
  8. Wählen Sie die Schaltfläche Benutzer erstellen aus.
Sie können diesen Benutzer oder einen entsprechend authentisierten Benutzer zu Testzwecken verwenden. Weitere Informationen finden Sie unter Verbindung mit der Befehlszeile testen.

MongoDB-Anwendungen mit Autonomous Database verbinden

Das Verbinden Ihrer MongoDB-Anwendung mit Autonomous Database umfasst je nach Ihren Anforderungen mehrere Schritte.

Autonomous Database-MongoDB-Verbindungszeichenfolge abrufen

Sie können die API-Verbindungszeichenfolge MongoDB über die Oracle Cloud Infrastructure-Konsole abrufen.

Nachdem Sie die API-Verbindungszeichenfolge MongoDB abgerufen haben, können Sie mit der MongoDB Shell, einem Befehlszeilenutility, eine Verbindung herstellen und Ihre Daten abfragen.

Zuerst müssen Sie den Netzwerkzugriff konfigurieren und die MongoDB-API aktivieren. Weitere Informationen finden Sie unter Zugriff für MongoDB konfigurieren.

So rufen Sie die API-Verbindungszeichenfolge MongoDB ab:

  1. Wählen Sie auf der Detailseite von Autonomous Database die Registerkarte Toolkonfiguration aus.
  2. Klicken Sie in der API-Zeile MongoDB unter "Zugriffs-URL" auf Kopieren.
Autonomous Database-Verbindungszeichenfolge aus Database Actions abrufen

Verwenden Sie MongoDB Shell, ein Befehlszeilenutility, mit dem Sie eine Verbindung herstellen und Ihre Daten herstellen und Abfragen ausführen können.
  1. Sie können die Verbindungszeichenfolge für die Autonomous Database-Instanz mit Database Actions abrufen.

    Weitere Informationen finden Sie unter Als ADMIN auf Database Actions zugreifen.

  2. Klicken Sie im Database Actions-Launchpad unter Zusätzliche Services auf Oracle Database-API für MongoDB.
  3. Klicken Sie auf der Seite Oracle Database-API für MongoDB auf Kopieren.

Verbindung mit der Befehlszeile testen

  1. Melden Sie sich als Testbenutzer an. Weitere Informationen finden Sie unter Autonomous Database-Testbenutzer für MongoDB erstellen.
    $ 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 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:

    ! # $ % & ' ( ) * +
    %21 %23 %24 %25 %26 %27 %28 %29 %2A %2B
    , / : ; = ? @ [ ]
    %2C %2F %3A %3B %3D %3F %40 %5B %5D

    Beispiel: Wenn Ihr Benutzername RUTH und Ihr Kennwort @least1/2#? lautet, könnte die MongoDB-Verbindungszeichenfolge zum Server <server> wie folgt aussehen:

    'mongodb://RUTH:%40least1%2F2%23%3F@<server>:27017/ruth/ ...'

    Je nach den Tools oder Treibern, die Sie verwenden, können Sie einen Benutzernamen und ein Kennwort als separate Parameter statt als Teil einer URI-Verbindungszeichenfolge angeben. In diesem Fall müssen Sie wahrscheinlich keine darin enthaltenen reservierten Zeichen codieren.

    Siehe auch:

  2. Eine Collection erstellen und Dokumente in die Collection einfügen
    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>
  3. Fragen Sie die Collection mit einem SQL-Client wie Database Actions ab.
    SELECT
         f.json_document.name, 
         f.json_document.count, 
         f.json_document.color
    FROM fruit f;

Verbindung mit einer Node.js-Anwendung testen

  1. Laden Sie Node.js herunter. 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
  2. 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
  3. 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
  4. Testen Sie Ihre Verbindung mit einem Javascript-Beispiel.
    1. Neues Verzeichnis erstellen.
      $ mkdir autonomous_mongodb
      $ cd autonomous_mongodb
      $ npm init –y
    2. Installieren Sie die mongodb- Abhängigkeit.
      $ npm install mongodb
    3. 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 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:

      ! # $ % & ' ( ) * +
      %21 %23 %24 %25 %26 %27 %28 %29 %2A %2B
      , / : ; = ? @ [ ]
      %2C %2F %3A %3B %3D %3F %40 %5B %5D

      Beispiel: Wenn Ihr Benutzername RUTH und Ihr Kennwort @least1/2#? lautet, könnte die MongoDB-Verbindungszeichenfolge zum Server <server> wie folgt aussehen:

      'mongodb://RUTH:%40least1%2F2%23%3F@<server>:27017/ruth/ ...'

      Je nach den Tools oder Treibern, die Sie verwenden, können Sie einen Benutzernamen und ein Kennwort als separate Parameter statt als Teil einer URI-Verbindungszeichenfolge angeben. In diesem Fall müssen Sie wahrscheinlich keine darin enthaltenen reservierten Zeichen codieren.

      Siehe auch:

    4. Beispiel ausführen. Die Ausgabe sollte wie folgt aussehen:
      $ node connect
      {
        _id: new ObjectId("611e3266005202371acf27c1"),
        title: 'Back to the Future',
        year: 1985,
        genres: [ 'Adventure', 'Comedy', 'Sci-Fi' ]
      }