Utilisation de l'API Oracle Database pour MongoDB

Oracle Database API for MongoDB permet de se connecter à Oracle Autonomous AI Database à l'aide de pilotes et d'outils de langage MongoDB.

Oracle Database API for MongoDB exploite les capacités de base de données convergée d'une base de données autonome avec intelligence artificielle afin de gérer plusieurs types de données, y compris les données JSON, au sein d'une seule base de données. Par exemple, ces capacités de base de données convergée vous permettent d'utiliser SQL pour interroger ou mettre à jour des données JSON.

Note

MongoDB nécessite que vous configuriez l'accès réseau pour utiliser des listes de contrôle d'accès ou que vous définissiez un point d'extrémité privé pour l'instance de base de données du service d'intelligence artificielle autonome.

Pour plus d'informations, voir API Oracle Database API for MongoDB.

Pour plus d'informations, voir À propos d'Autonomous JSON Database.

Pour plus d'informations, voir À propos des types de charge de travail de base de données d'IA autonome.

Rubriques

Configurer l'accès pour MongoDB et activer MongoDB

Oracle Database API for MongoDB vous permet d'utiliser une base de données Oracle Autonomous AI Database comme magasin de données.

Pour utiliser l'API MongoDB, vous pouvez créer et configurer une nouvelle base de données d'IA autonome ou modifier la configuration d'une base de données d'IA autonome existante.

Note

MongoDB nécessite que vous configuriez l'accès réseau pour utiliser des listes de contrôle d'accès ou que vous définissiez un point d'extrémité privé pour l'instance de base de données du service d'intelligence artificielle autonome. En plus de configurer l'accès au réseau, vous devez activer l'API MongoDB sur l'instance de base de données du service d'intelligence artificielle autonome.

Configurer l'accès pour MongoDB

Pour utiliser l'API MongoDB, vous pouvez créer et configurer une nouvelle base de données d'IA autonome ou modifier la configuration d'une base de données d'IA autonome existante en configurant des listes de contrôle d'accès ou en définissant un point d'extrémité privé.

Configurer une nouvelle base de données d'IA autonome pour MongoDB

Suivez les étapes sous Provisionner ou cloner une base de données d'IA autonome, jusqu'au point où vous sélectionnez votre type d'accès au réseau.

Une description de adb_network_access_acl_provision.png suit
Description de l'illustration adb_network_access_acl_provision.png

À ce stade, pour utiliser Oracle Database API for MongoDB, configurez l'accès sécurisé en sélectionnant et en configurant l'un des types d'accès réseau suivants :

  • Accès sécurisé depuis les adresses IP et les réseaux en nuage virtuels autorisés seulement

  • Accès au point d'extrémité privé seulement

    Voir Configurer l'accès réseau à l'aide de points d'extrémité privés pour plus d'informations sur la configuration d'une instance de base de données autonome avec un point d'extrémité privé.

Configurer une base de données d'IA autonome existante pour MongoDB

Ouvrez la console Oracle Cloud Infrastructure pour votre instance de base de données du service d'intelligence artificielle autonome.



Note

Pour utiliser l'API Oracle Database API for MongoDB, le réseau doit être configuré et le type d'accès doit être : Accès sécurisé à partir des adresses IP et des réseaux en nuage virtuels autorisés uniquement ou Accès aux points d'extrémité privés uniquement.

Configuration de la liste de contrôle d'accès (ACL)

Pour plus d'informations, voir Configurer les listes de contrôle d'accès pour une instance de base de données d'IA autonome existante.

Pour configurer votre liste de contrôle d'accès pour une adresse IP, vous devez obtenir l'adresse IP publique. Il existe plusieurs façons d'afficher votre adresse IP publique :
  • Dans la zone d'accès réseau sélectionnée, cliquez sur Ajouter mon adresse IP. Votre adresse IP est alors copiée dans le champ Valeurs.

  • Après avoir désactivé un RPV, utilisez le site Web WhatIsMyIP.
  • Après avoir désactivé un RPV, utilisez la commande curl : curl -s https://ifconfig.me.
Note

Les adresses IP publiques peuvent changer. Toute modification apportée à votre adresse IP publique nécessitera une modification de la liste de contrôle d'accès. Si vous ne parvenez pas à accéder à votre base de données, votre liste de contrôle d'accès doit être un élément que vous vérifiez.

Types et cas d'utilisation de listes de contrôle d'accès

Type de liste de contrôle d'accès Cas d'utilisation Commentaire
Adresse IP Ordinateurs portables de développement local partageant la même adresse IP publique Le moyen le plus facile de commencer. Tout ordinateur portable connecté sur ce réseau local aura accès à la base de données avec les informations d'identification de la base de données.
Bloc CIDR Ordinateur portable de développement local Utilisation de la notation IPv4/32
Adresses IP séparées par des virgules Petit nombre d'ordinateurs portables de développement local connectés sur des réseaux locaux distincts (ayant des adresses IP publiques distinctes) Peut être fastidieux à gérer avec plus de 10 ordinateurs portables.
Bloc CIDR Ordinateurs portables de développement local connectés sur le même sous-réseau exposé à Internet (chaque ordinateur portable a sa propre adresse IP publique) Comptez sur la notation de bloc CIDR. Pour plus d'informations, voir Calculateur ici. Exemple : 89.84.109.0/24 donne 256 adresses IP possibles de 89.84.109.0 à 89.84.109.255
VCN avec bloc CIDR Pour les tests, la production ou le pipeline d'intégration et de développement en continu hébergé sur OCI ayant ses propres instances de VCN et de calcul Affectez un compartiment OCI par type d'environnement.
Mélange d'adresses IP et de VCN avec un bloc CIDR Ordinateur portable de développement local qui accède à une base de données autonome avec des connexions à partir de l'environnement de test ou du pipeline d'intégration et de développement en continu Option de configuration commune pour les travaux de développement en cours.

Activer l'API MongoDB sur la base de données d'intelligence artificielle autonome

Après avoir configuré l'accès réseau pour l'instance de base de données du service d'intelligence artificielle autonome, activez l'API MongDB.

Pour activer l'API MongoDB pour une instance existante :

  1. Dans la page des détails de la base de données d'intelligence artificielle autonome, sélectionnez l'onglet Configuration des outils.
  2. Cliquez sur Modifier la configuration de l'outil.
  3. Dans la rangée de l'API MongoDB, sélectionnez dans la colonne Activer l'outil l'option Activé.
  4. Cliquez sur Appliquer.

L'état du cycle de vie passe à Mise à jour jusqu'à ce que MongoDB soit activé.

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 plus d'informations, voir Gérer les outils intégrés de base de données d'IA autonome.

Gestion des utilisateurs pour MongoDB

Oracle Database API for MongoDB vous permet d'utiliser une base de données Oracle Autonomous AI Database comme magasin de données. Si vous souhaitez utiliser une base de données IA autonome existante à cette fin, voici le flux de travail.

Oracle Database API for MongoDB permet le mappage des objets de base de données d'IA autonome aux objets MongoDB comme suit :

Objet MongoDB Objet Oracle Autonomous Database
base de données schéma
collection tableau
document document (dans une colonne)

Par exemple, vous pouvez créer une collection à l'aide de l'API Oracle Database API for MongoDB comme suit :

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

Une table nommée FRUIT est créée dans le schéma SCOTT.

Lorsque vous êtes connecté à l'API Oracle Database API for MongoDB, vous vous authentifiez à l'aide d'un nom d'utilisateur et d'un mot de passe de base de données IA autonome. Cette connexion authentifiée accède ensuite aux collections du schéma correspondant. Cet utilisateur doit répondre aux exigences suivantes :

Note

Le rôle DWROLE dans Autonomous AI Database contient ces rôles, entre autres.

L'accès aux schémas non accordés à l'utilisateur est interdit. Par exemple, l'utilisateur SCOTT ne peut accéder qu'aux collections du schéma SCOTT. Il y a une exception. Si l'utilisateur authentifié dispose des privilèges de base de données d'intelligence artificielle autonome CREATE USER, ALTER USER et DROP USER, cet utilisateur peut accéder à n'importe quel schéma activé pour ORDS.

En outre, un utilisateur disposant de ces privilèges peut créer implicitement des schémas. Autrement dit, lorsque l'utilisateur crée une collection dans une base de données qui n'existe pas, le schéma est créé automatiquement. Pour plus d'informations, voir API Oracle Database API for MongoDB.

Créer un utilisateur Autonomous Database de test pour MongoDB

Les étapes suivantes utilisent Database Actions pour créer un utilisateur de test doté des rôles appropriés. Vous pouvez également utiliser Database Actions SQL ou d'autres utilitaires de ligne de commande SQL pour exécuter directement les instructions SQL. Pour plus d'informations, voir Créer des utilisateurs dans Autonomous AI Database - Connexion à un outil client.
  1. Ouvrez la console Oracle Cloud Infrastructure pour votre base de données Autonomous AI Database.
  2. Sélectionnez Database Actions.
  3. Dans le panneau de lancement de Database Actions, sélectionnez Administration > Utilisateurs de base de données.
  4. Sélectionnez + Create User (Créer un utilisateur) dans la page Database Users (Utilisateurs de base de données).
  5. Entrez un nom d'utilisateur et un mot de passe pour l'utilisateur de test. Sélectionnez Accès Web et définissez le quota sur l'espace-table DATA.
  6. Sélectionnez 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. Sélectionnez le bouton Créer un utilisateur.
Vous pouvez utiliser cet utilisateur, ou un utilisateur authentifié de manière similaire, à des fins de test. Pour plus d'informations, voir Tester la connexion à l'aide de la ligne de commande.

Connecter des applications MongoDB à une base de données Autonomous AI Database

Extraire la chaîne de connexion MongoDB de la base de données d'intelligence artificielle autonome

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

Après avoir obtenu 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 devez d'abord configurer l'accès au réseau et activer l'API MongoDB. Pour plus d'informations, voir Configurer l'accès pour MongoDB.

Pour extraire la chaîne de connexion à l'API MongoDB :

  1. Dans la page des détails de la base de données d'intelligence artificielle autonome, sélectionnez l'onglet Configuration des outils.
  2. Dans la rangée de l'API MongoDB, sous URL d'accès, cliquez sur Copier.
Extraire la chaîne de connexion à la base de données d'intelligence artificielle autonome à partir de Database Actions

Utilisez l'interpréteur de commandes MongoDB, qui est un utilitaire de ligne de commande utilisé pour vous connecter et interroger vos données.
  1. Vous pouvez extraire la chaîne de connexion pour votre instance de base de données du service d'intelligence artificielle autonome à l'aide de Database Actions.
  2. Dans le panneau de lancement de Database Actions, sous Services connexes, cliquez sur API Oracle Database API for MongoDB.
  3. Dans la page API Oracle Database API for MongoDB, cliquez sur Copier.

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

  1. Connectez-vous en tant qu'utilisateur test. Pour plus d'informations, voir Créer un utilisateur Autonomous Database de test pour MongoDB.
    $ 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
    > 
    Note

    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 :

    ! # $ % & ' ( ) * +
    %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.

    Voir aussi :

  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;
    Description de database_actions_sql_for_mongodb_use.png :
    Description de l'illustration database_actions_sql_for_mongodb_use.png

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

  1. Téléchargez 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.
    1. Créer un répertoire.
      $ mkdir autonomous_mongodb
      $ cd autonomous_mongodb
      $ npm init –y
    2. Installez la dépendance mongodb.
      $ npm install mongodb
    3. 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);
      
      Note

      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 :

      ! # $ % & ' ( ) * +
      %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.

      Voir aussi :

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