Oracle Database-API für MongoDB verwenden

Mit der Oracle Database API for MongoDB können Sie mithilfe von MongoDB-Sprachtreibern und -Tools eine Verbindung zu Oracle Autonomous AI Database herstellen.

Oracle Database API for MongoDB nutzt die konvergierten Datenbankfunktionen einer autonomen KI-Datenbank, um mehrere Datentypen, einschließlich JSON-Daten, innerhalb einer einzigen Datenbank zu verwalten. Mit diesen konvergierten Datenbankfunktionen können Sie beispielsweise SQL verwenden, um JSON-Daten abzufragen oder zu aktualisieren.

Hinweis

MongoDB erfordert, dass Sie den Netzwerkzugriff zur Verwendung von ACLs konfigurieren oder einen privaten Endpunkt für die Instanz der autonomen KI-Datenbank definieren.

Weitere Informationen finden Sie unter Oracle Database API for MongoDB.

Weitere Informationen finden Sie unter Autonomous JSON Database.

Weitere Informationen finden Sie unter Workload-Typen für autonome KI-Datenbanken.

Themen

Zugriff für MongoDB konfigurieren und MongoDB aktivieren

Mit der Oracle Database API for MongoDB können Sie eine Oracle Autonomous AI Database als Datenspeicher verwenden.

Um die MongoDB-API zu verwenden, können Sie eine neue autonome KI-Datenbank erstellen und konfigurieren oder die Konfiguration einer vorhandenen autonomen KI-Datenbank ändern.

Hinweis

MongoDB erfordert, dass Sie den Netzwerkzugriff zur Verwendung von ACLs konfigurieren oder einen privaten Endpunkt für die Instanz der autonomen KI-Datenbank definieren. Sie müssen nicht nur den Netzwerkzugriff konfigurieren, sondern auch die MongoDB-API in der autonomen KI-Datenbankinstanz aktivieren.

Zugriff für MongoDB konfigurieren

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

Neue autonome KI-Datenbank für MongoDB konfigurieren

Befolgen Sie die Schritte unter Autonome KI-Datenbank bereitstellen oder klonen bis zu dem Punkt, an dem Sie den Netzwerkzugriffstyp auswählen.

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

Wenn Sie jetzt mit Oracle Database API for MongoDB sicheren Zugriff konfigurieren möchten, wählen und konfigurieren Sie einen der folgenden Netzwerkzugriffstypen:

Vorhandene autonome KI-Datenbank für MongoDB konfigurieren

Öffnen Sie die Oracle Cloud Infrastructure-Konsole für Ihre autonome KI-Datenbankinstanz.



Hinweis

Um Oracle Database API for MongoDB zu verwenden, muss das Netzwerk konfiguriert sein, und der Zugriffstyp muss entweder Sicherer Zugriff nur 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 autonome KI-Datenbankinstanz konfigurieren.

Um Ihre ACL für eine IP-Adresse zu konfigurieren, müssen Sie die öffentliche IP-Adresse beziehen. Es gibt mehrere Möglichkeiten, Ihre öffentliche IP-Adresse anzuzeigen:
  • 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 WhatIsMyIP-Website.
  • Nachdem Sie ein VPN deaktiviert haben, verwenden Sie den curl-Befehl: curl -s https://ifconfig.me.
Hinweis

Öffentliche IP-Adressen können sich ändern. Jede Änderung Ihrer öffentlichen IP-Adresse erfordert eine Änderung der ACL. Wenn Sie nicht auf Ihre Datenbank zugreifen können, sollte Ihre ACL etwas sein, das Sie überprüfen.

ACLs - Typen und Anwendungsfälle

ACL-Typ Anwendungsfall Kommentar
IP-Adresse Lokale Entwicklungs-Laptops mit derselben öffentlichen IP-Adresse Der einfachste Weg, um loszulegen. Jeder Laptop, der mit diesem LAN verbunden ist, hat Zugriff auf die Datenbank mit den Datenbankzugangsdaten.
CIDR-Block Lokaler Entwicklungs-Laptop Verwenden der Notation IPv4/32
Durch Komma getrennte IP-Adressen Kleine Anzahl von lokalen Entwicklungs-Laptops, die über verschiedene LANs verbunden sind (mit unterschiedlichen öffentlichen IP-Adressen) Kann mit mehr als 10 Laptops mühsam zu verwalten sein.
CIDR-Block Lokale Entwicklungs-Laptops, die auf demselben Subnetz verbunden sind, das dem Internet ausgesetzt ist (jeder Laptop hat seine eigene öffentliche IP-Adresse) Verlassen Sie sich auf die CIDR-Blocknotation. Weitere Informationen finden Sie unter Rechner hier. Beispiel: 89.84.109.0/24 gibt 256 mögliche IP-Adressen von 89.84.109.0 bis 89.84.109.255 an
VCN mit CIDR-Block Für auf OCI gehostete Test-, Produktions- oder CI/CD-Pipeline mit eigenen VCN- und Compute-Instanzen Weisen Sie ein OCI-Compartment pro Umgebungstyp zu.
IP-Adresse und VCN mit CIDR-Block mischen Lokaler Entwicklungs-Laptop, der auf eine autonome KI-Testdatenbank mit Verbindungen aus der Testumgebung oder CI/CD-Pipeline zugreift Eine allgemeine Konfigurationsoption für laufende Entwicklungsarbeiten.

API MongoDB in autonomer KI-Datenbank aktivieren

Nachdem Sie den Netzwerkzugriff für die Instanz der autonomen KI-Datenbank konfiguriert haben, aktivieren Sie die API MongDB.

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

  1. Wählen Sie auf der Detailseite der autonomen KI-Datenbank die Registerkarte Toolkonfiguration aus.
  2. Klicken Sie auf Toolkonfiguration bearbeiten.
  3. Wählen Sie in der API-Zeile MongoDB die Option Tool aktivieren aus, um Aktiviert anzuzeigen.
  4. Klicken Sie auf Anwenden.

Der Lebenszyklusstatus ändert sich in "Aktualisieren", bis MongoDB aktiviert ist.

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.

Weitere Informationen finden Sie unter Integrierte Tools für autonome KI-Datenbanken verwalten.

Benutzerverwaltung für MongoDB

Mit der Oracle Database API for MongoDB können Sie eine Oracle Autonomous AI Database als Datenspeicher verwenden. Wenn Sie zu diesem Zweck eine vorhandene autonome KI-Datenbank verwenden möchten, finden Sie hier den Workflow.

Oracle Database API for MongoDB ermöglicht die Zuordnung von autonomen KI-Datenbankobjekten zu MongoDB-Objekten wie folgt:

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

Beispiel: Sie können eine Collection mit der Oracle Database API for MongoDB wie folgt erstellen:

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

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

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

Hinweis

Die Rolle DWROLE in der autonomen KI-Datenbank enthält unter anderem diese Rollen.

Der Zugriff auf Schemas, die dem Benutzer nicht erteilt wurden, ist verboten. Beispiel: Der Benutzer SCOTT kann nur auf Collections im Schema SCOTT zugreifen. Es gibt eine Ausnahme. Wenn der authentifizierte Benutzer die Berechtigungen CREATE USER, ALTER USER und DROP USER für die autonome KI-Datenbank hat, kann dieser Benutzer auf jedes ORDS-fähige Schema zugreifen.

Darüber hinaus kann ein Benutzer mit diesen Berechtigungen implizit Schemas erstellen. Das heißt, wenn der Benutzer eine Collection in einer Datenbank erstellt, die nicht vorhanden ist, wird das Schema automatisch erstellt. Weitere Informationen finden Sie unter Oracle Database API for MongoDB.

Test-Autonomous Database-Benutzer für MongoDB erstellen

Mit den folgenden Schritten erstellen Sie einen Testbenutzer mit den richtigen Rollen. Sie können auch Database Actions SQL oder andere SQL-Befehlszeilen-Utilitys verwenden, um die SQL-Anweisungen direkt auszuführen. Weitere Informationen finden Sie unter Benutzer in autonomer KI-Datenbank erstellen - Verbindung mit einem Clienttool herstellen.
  1. Öffnen Sie die Oracle Cloud Infrastructure-Konsole für Ihre autonome KI-Datenbank.
  2. Wählen Sie Datenbankaktionen aus.
  3. Wählen Sie im Database Actions-Launchpad Administration > Datenbankbenutzer aus.
  4. Wählen Sie auf der Seite "Datenbankbenutzer" + Benutzer erstellen aus.
  5. Geben Sie einen Benutzernamen und ein Kennwort für den Testbenutzer ein. Wählen Sie Webzugriff aus, und legen Sie das Quota on 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 fügen Sie sie hinzu.
  8. Klicken Sie auf die Schaltfläche Benutzer erstellen.
Sie können diesen Benutzer oder einen ähnlich authentifizierten Benutzer zu Testzwecken verwenden. Weitere Informationen finden Sie unter Verbindung mit der Befehlszeile testen.

MongoDB-Anwendungen mit autonomer KI-Datenbank verbinden

Die Verbindung Ihrer MongoDB-Anwendung mit der autonomen KI-Datenbank umfasst mehrere Schritte, je nach Ihren Anforderungen.

Verbindungszeichenfolge für autonome AI-Datenbank MongoDB abrufen

Sie können die API-Verbindungszeichenfolge MongoDB aus der 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 der autonomen KI-Datenbank die Registerkarte Toolkonfiguration aus.
  2. Klicken Sie in der API-Zeile MongoDB unter "Zugriffs-URL" auf Kopieren.
Verbindungszeichenfolge für autonome KI-Datenbank aus Datenbankaktionen abrufen

Verwenden Sie die MongoDB Shell, ein Befehlszeilenutility, mit dem Sie eine Verbindung herstellen und Ihre Daten abfragen können.
  1. Sie können die Verbindungszeichenfolge für die Instanz der autonomen KI-Datenbank mit Database Actions abrufen.

    Weitere Informationen finden Sie unter Auf Database Actions als ADMIN zugreifen.

  2. Klicken Sie im Database Actions-Launchpad unter Zugehörige Services auf Oracle Database API for MongoDB.
  3. Klicken Sie auf der Seite Oracle Database API for 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 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:

  2. 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>
  3. 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;
    Beschreibung von database_actions_sql_for_mongodb_use.png folgt
    Beschreibung der Abbildung database_actions_sql_for_mongodb_use.png

Verbindung mit einer Node.js-Anwendung testen

  1. 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
  2. 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
  3. Konfigurieren Sie die PATH-Umgebungsvariable. 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
  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 Mangodb-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 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:

    4. 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' ]
      }