Connexion à une base de données MongoDB (FireDAC)

De RAD Studio
Aller à : navigation, rechercher

Remonter à Connectivité des bases de données (FireDAC)

Cette rubrique explique comment établir une connexion à MongoDB en utilisant FireDAC.

MongoDB est une base de données de documents NoSQL open-source.

Obtention de MongoDB

Vous pouvez télécharger MongoDB sur le site officiel www.mongodb.org/downloads (EN).

Versions prises en charge

Le pilote MongoDB FireDAC prend en charge MongoDB version 3.0 et ultérieure.

Logiciel client

Logiciel client Windows

FireDAC requiert le "pilote MongoDB C" pour la connexion au serveur MongoDB. L'installation de RAD Studio inclut les bibliothèques précompilées suivantes  :

  • libbson-1.0.dll : une bibliothèque BSON
  • libmongoc-1.0.dll : un pilote MongoDB C.

Les bibliothèques client de connexion au serveur MongoDB sont incluses dans l'installation de RAD Studio :

  • C:\Program Files (x86)\Embarcadero\Studio\21.0\Redist\Win32 : contient les versions 32 bits de libbson-1.0.dll et libmongoc-1.0.dll
    • Utilisez-les pour les applications de bureau Win32 ou pour la connexion à MondoDB lors de la conception.
  • C:\Program Files (x86)\Embarcadero\Studio\21.0\Redist\Win64 : contient les versions 64 bits de libbson-1.0.dll et libmongoc-1.0.dll
    • Utilisez-les pour les applications de bureau Win64.

Enregistrez les bibliothèques requises dans l'un quelconque des emplacements suivants :

  • un dossier inclus dans votre variable d'environnement PATH (par exemple, <Windows>\SYSTEM32).
  • le dossier EXE de votre application.
  • tout autre dossier, que vous devez spécifier dans FDDrivers.ini :
[Mongo]
VendorLib=<folder>\libmongoc-1.0.dll

Si la bibliothèque client MongoDB n'a pas été installée correctement, une exception est déclenchée lorsque vous tentez d'établir une connexion :

[FireDAC][Phys][Mongo]-314. Cannot load vendor library [libmongoc-1.0.dll]. The specified module could not be found. Hint: check it is in the PATH or application EXE directories, and has x86 bitness.

Logiciel client macOS

FireDAC requiert les bibliothèques dynamiques suivantes pour la connexion au serveur MongoDB :

  • libbson-1.0.0.dylib
  • libmongoc-1.0.0.dylib

Ces bibliothèques sont incluses dans l'installation de RAD Studio, dans le dossier C:\Program Files (x86)\Embarcadero\Studio\21.0\Redist\osx32.

Enregistrez-les dans /usr/local.

Logiciel client Linux

FireDAC requiert la bibliothèque mongo-c-driver. Pour l'installer, procédez comme suit :

  1. Sur Ubuntu Server 16.04 LTS, exécutez :
    sudo apt-get install libmongoc
    sudo ln -s /usr/lib/x86_64-linux-gnu/libmongoc-1.0.so.0 /usr/lib/x86_64-linux-gnu/libmongoc-1.0.so
    sudo ln -s /usr/lib/x86_64-linux-gnu/libbson-1.0.so.0 /usr/lib/x86_64-linux-gnu/libbson-1.0.so
    
  2. Sur Red Hat Enterprise Linux 7, construisez mongo-c-driver à partir de la source, installez-le et exécutez :
    sudo ln -s /usr/lib64/libmongoc-1.0.so.0 /usr/lib/x86_64-linux-gnu/libmongoc-1.0.so
    sudo ln -s /usr/lib64/libbson-1.0.so.0 /usr/lib/x86_64-linux-gnu/libbson-1.0.so
    

Liaison du pilote

Pour lier le pilote :

Paramètres de définition de la connexion

DriverID=Mongo

Paramètre Description Valeur exemple
Server Adresse TCP/IP ou nom d'hôte du serveur exécutant le processus de base de données MongoDB. 127.0.0.1
Port Le port TCP/IP sur lequel le processus de base de données MongoDB écoute. 27017
Database Nom de la base de données en cours pour la connexion. Si ce paramètre n'est pas spécifié, aucune base de données n'est configurée. test
User_Name L'ID de l'utilisateur MongoDB.
Password Le mot de passe de l'utilisateur MongoDB.
UseSSL

Spécifiez True pour activer la connexion SSL. La valeur par défaut est False. L'attribution de la valeur True à UseSSL requiert en outre la spécification des paramètres de définition de connexion suivants :

  • SSLPEMKeyFile -- nom de chemin du fichier .pem qui contient la clé et le certificat SSL.
  • SSLCAFile -- nom de chemin du fichier .pem qui contient le certificat du Certificate Authority (CA).
  • SSLPEMKeyPassword -- si le fichier certificat-clé client est encrypté.

Pour plus d'informations, voir la documentation MongoDB :

True
LoginTimeout Contrôle la durée, en secondes, s'écoulant avant qu'une application dépasse le temps imparti pour établir la connexion. 0
ReadTimeout Délai, en secondes, pour tenter de lire à partir du serveur. Comme chaque tentative utilise cette valeur et que plusieurs tentatives peuvent s'avérer nécessaires, la valeur totale du délai efficace équivaut à trois fois la valeur de l'option. 300
MongoAdvanced Autres options de connexion à la base de données MongoDB :

Pour plus d'informations, voir la documentation MongoDB :

Cas d'utilisation

Utilisation d'une connexion sécurisée

Pour utiliser l'encryptage TLS/SSL, définissez le paramètre UseSSL avec True comme valeur, puis spécifiez les paramètres SSLPEMKeyFile et SSLCAFile comme suit :


DriverID=Mongo
Server=<ip_address>
Port=27017
Database=test
UseSSL=True
SSLCAFile=ca-cert.pem // The file that contains the certificate from the CA (Certificate Authority).
SSLPEMKeyFile=client-key.pem and client-cert.pem // The file that contains the SSL certificate and key.

Vous pouvez également utiliser sslPEMKeyPassword si le fichier certificat-clé client est encrypté. Pour plus d'informations, voir TLS/SSL Configuration for Client (EN).

Remarque : Le pilote MongoDB C a été compilé sans prise en charge SSL. Si votre application requiert SSL, vous devez compiler le pilote MongoDB C vous-même et fournir un ensemble supplémentaire de bibliothèques requises. Ces bibliothèques peuvent requérir les bibliothèques d'exécution OpenSSL et Microsoft Visual C++.

Autres cas d'utilisation

  • Connexion à un serveur exécuté localement, écoutant sur le port par défaut (27017) :


DriverID=Mongo
Database=test
  • Connexion à un serveur distant, écoutant sur un port autre que le port par défaut, avec l'authentification activée :


DriverID=Mongo
Server=test
Port=<port_number>
Database=test
User_Name=admin
Password=<admin_password>

Voir aussi