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:

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:

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:

  1. Wählen Sie auf der Seite Details der autonomen KI-Datenbank die Registerkarte Toolkonfiguration aus.

  2. 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.

  1. Öffnen Sie die OCI-Konsole für Ihre autonome KI-Datenbank.

  2. Klicken Sie auf Database Actions.

  3. Klicken Sie im Database Actions-Launchpad auf Administration > Datenbankbenutzer.

  4. Klicken Sie auf der Seite "Database Users" auf + Create User.

  5. 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.

  6. Klicken Sie auf die Registerkarte Erteilte Rollen.

  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 Create User.

Verbindung mit der Befehlszeile testen

  1. 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**
     >
    
  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;
    

Verbindung mit einer Node.js-Anwendung testen

  1. 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
    
  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.

    a. Neues Verzeichnis erstellen.

       $ mkdir autonomous_mongodb
       $ cd autonomous_mongodb
       $ npm init -y
    

    b. Installieren Sie die Mangodb-Abhängigkeit.

       $ npm install mongodb
    

    c. 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.

Verwandte Inhalte