Utiliser l'API MongoDB avec Oracle Autonomous AI Database sur une infrastructure Exadata dédiée

Oracle Database API for MongoDB traduit le protocole de connexion MongoDB en énoncés SQL exécutés par Oracle Database. Il permet aux développeurs disposant d'ensembles de compétences MongoDB d'écrire des applications de magasin de documents JSON pour Oracle Database qui utilisent des pilotes et des outils qui comprennent le protocole MongoDB. Voir Aperçu de l'API Oracle Database API for MongoDB dans API Oracle Database API for MongoDB pour obtenir un aperçu détaillé de cette API.

Activer l'API MongoDB

Vous pouvez activer l'API MongoDB pour une base de données d'IA autonome à partir de la console OCI ou manuellement à l'aide d'Oracle REST Data Services (ORDS).

Pour utiliser l'API MongoDB avec une base de données autonome d'IA, vous devez installer et configurer Oracle REST Data Services (ORDS) géré par le client séparément et la version d'ORDS doit être 22.3 ou ultérieure. Voir API Oracle pour le soutien MongoDB dans le guide d'installation et de configuration d'Oracle REST Data Services pour les concepts architecturaux de cette API.

Pour activer l'API MongoDB à partir de la console OCI :

Vous pouvez également activer l'API MongoDB lorsque vous provisionnez ou clonez une instance en sélectionnant Afficher les options avancées et en sélectionnant l'onglet Outils.

Pour activer MongoDB manuellement :

Pour obtenir une démonstration des étapes ci-dessus, consultez Démarrage dans le guide d'installation et de configuration d'Oracle REST Data Services.

Connecter les applications MongoDB

Une fois l'API MongoDB activée, vous pouvez créer un utilisateur MongoDB et vous connecter à la base de données IA autonome avec sa chaîne de connexion.

Avec la chaîne de connexion à l'API MongoDB, vous pouvez utiliser l'interpréteur de commandes MongoDB, qui est un utilitaire de ligne de commande, pour vous connecter et interroger vos données.

Vous pouvez extraire sa chaîne de connexion à partir de la console Oracle Cloud Infrastructure. Pour extraire la chaîne de connexion à l'API MongoDB :

  1. Dans la page Détails de la base de données autonome avec intelligence artificielle, sélectionnez l'onglet Configuration de l'outil.

  2. Dans la rangée API MongoDB, sous URL d'accès, cliquez sur Copier.

Si vous utilisez l'API MongoDB sur Autonomous AI Database sur Exadata Cloud@Customer, votre équipe réseau/DNS doit s'assurer que tout nom d'hôte de chaîne de connexion MongoDB est résolu en SCAN de la grappe. Sans cela, les clients MongoDB ne pourront pas se connecter à la base de données. Vous pouvez autoriser les connexions à toutes les bases de données d'IA autonomes de la grappe à l'aide d'un enregistrement DNS générique ou autoriser une base de données d'IA autonome spécifique :

Tester les connexions MongoDB

Créer un utilisateur de base de données d'intelligence artificielle autonome de test pour MongoDB

Vous pouvez créer un utilisateur de test, ou un utilisateur authentifié de manière similaire, à des fins de test.

  1. Ouvrez la console OCI pour votre base de données d'IA autonome.

  2. Cliquez sur Database Actions.

  3. Dans le panneau de lancement de Database Actions, cliquez sur Administration > Utilisateurs de la base de données.

  4. Cliquez sur + Créer un utilisateur dans la page Utilisateurs de la base de données.

  5. Entrez un nom d'utilisateur et un mot de passe pour l'utilisateur du test. Cliquez sur Accès Web et définissez le quota sur l'espace-table DATA.

  6. Cliquez sur l'onglet Rôles octroyés.

  7. En plus des rôles par défaut, sélectionnez et ajoutez le rôle SODA_APP pour l'utilisateur.

  8. Cliquez sur Créer un utilisateur.

Tester la connexion à l'aide de la ligne de commande

  1. Connectez-vous en tant qu'utilisateur test. Suivez les étapes de l'exemple précédent pour obtenir des instructions.

     $ 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. Créez une collection et insérez des documents dans votre collection.

       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. Interrogez la collection à l'aide d'un client SQL tel que Database Actions.

    SELECT
        f.json_document.name,
        f.json_document.count,
        f.json_document.color
    FROM fruit f;
    

Tester la connexion à l'aide d'une application Node.js

  1. Télécharger Node.js. Si vous avez déjà téléchargé ou installé Node.js pour votre environnement, vous pouvez ignorer cette étape.

     $ wget https://nodejs.org/dist/latest-v14.x/node-v14.17.5-linux-x64.tar.xz
    
  2. Extraire le contenu de l'archive Node,js. Si vous avez déjà téléchargé ou installé Node.js pour votre environnement, vous pouvez ignorer cette étape.

     $ tar -xf node-v14.17.5-linux-x64.tar.xz
    
  3. Configurez la variable d'environnement PATH. Si vous avez déjà téléchargé ou installé Node.js pour votre environnement, vous pouvez ignorer cette étape.

     $ export PATH="`pwd`"/node-v14.17.5-linux-x64/bin:$PATH
    
  4. Testez votre connexion avec un exemple Javascript.

    a. Créer un répertoire.

       $ mkdir autonomous_mongodb
       $ cd autonomous_mongodb
       $ npm init -y
    

    b. Installez la dépendance mongodb.

       $ npm install mongodb
    

    c. Créez une application JavaScript nommée 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);
    

j. Exécutez l'exemple suivant. La sortie doit ressembler à ce qui suit.

    $ node connect
    {
      _id: new ObjectId("611e3266005202371acf27c1"),
      title: 'Back to the Future',
      year: 1985,
      genres: [ 'Adventure', 'Comedy', 'Sci-Fi' ]
    }

Pourcentage d'URI pour les caractères réservés

Utilisez l'encodage en pourcentage d'URI pour remplacer tous les caractères réservés dans votre URI de chaîne de connexion - en particulier, les caractères de votre nom d'utilisateur et de votre mot de passe. Voici les caractères réservés et leur pourcentage d'encodages :

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

Par exemple, si votre nom d'utilisateur est RUTH et que votre mot de passe est @least1/2#?, la chaîne de connexion MongoDB au serveur <server> peut ressembler à ceci :

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

Selon les outils ou les pilotes que vous utilisez, vous pouvez fournir un nom d'utilisateur et un mot de passe en tant que paramètres distincts, au lieu de faire partie d'une chaîne de connexion URI. Dans ce cas, vous n'aurez probablement pas besoin d'encoder les caractères réservés qu'ils contiennent.

Contenu connexe