MongoDB - Connexion
Dans ce tutoriel, nous allons discuter des différentes façons de se connecter à MongoDB.
Démarrer le service MongoDB
Dans les tutoriels précédents, nous avons discutécomment démarrer le service MongoDB, il vous suffit d'exécuter la commande suivante dans le répertoire bin du répertoire d'installation de MongoDBmongodbet c'est tout.
Après le démarrage, MongoDB affiche quelques informations nécessaires puis n'affiche plus rien, après quoi il attend que les connexions soient établies. Lorsqu'une connexion est établie, il commence à imprimer des informations de journal.
Vous pouvez utiliserMongoDB shellpour vous connecter au serveur MongoDB. Vous pouvez également utiliser PHP pour vous connecter à MongoDB. Dans ce tutoriel, nous utiliserons le MongoDB shell pour nous connecter au service MongoDB, et dans les chapitres suivants, nous présenterons comment se connecter aux services MongoDB via PHP, Python et Node.js.
Syntaxe de connexion URI standard :
mongodb://[username:password@]host1[:port1][,...hostN[:portN]][/[defaultauthdb][?options]]
mongodb://: en-tête de protocole, indique l'utilisation de MongoDB.[username:password@]: (facultatif) informations d'authentification, y compris le nom d'utilisateur et le mot de passe.host1[:port1][,...hostN[:portN]]: adresse et port du serveur, qui peuvent être l'adresse et le port d'un ou plusieurs serveurs MongoDB./[defaultauthdb]: (facultatif) base de données d'authentification par défaut.[?options]: (facultatif) options de connexion.
Le format de connexion standard comprend plusieurs options, comme indiqué ci-dessous :
authSource: spécifie la base de données d'authentification.replicaSet: spécifie le nom du jeu de réplicas.ssl: active la connexion SSL (true ou false).readPreference: spécifie la préférence de lecture, telle queprimary,primaryPreferred,secondary,secondaryPreferred,nearest。connectTimeoutMS: spécifie le délai d'attente de connexion (millisecondes).socketTimeoutMS: spécifie le délai d'attente de socket (millisecondes).
Se connecter à une instance MongoDB locale (port par défaut 27017) :
mongodb://localhost
Se connecter à une instance MongoDB locale, en spécifiant une base de données :
mongodb://localhost/mydatabase
Se connecter à une instance MongoDB locale à l'aide d'un nom d'utilisateur et d'un mot de passe :
mongodb://username:password@localhost/mydatabase
Se connecter à une instance MongoDB distante :
mongodb://remotehost:27017
Se connecter à un ensemble de réplicas :
mongodb://host1:27017,host2:27017,host3:27017/mydatabase?replicaSet=myReplicaSet
Se connecter à MongoDB avec SSL :
mongodb://username:password@localhost:27017/mydatabase?ssl=true
Se connecter avec plusieurs options :
mongodb://username:password@localhost:27017/mydatabase?authSource=admin&ssl=true
Python (PyMongo)
Exemple
client = MongoClient('mongodb://user:password@localhost:27017/mydatabase?authSource=admin')
db = client['mydatabase']
Node.js (Mongoose)
Exemple
mongoose.connect('mongodb://user:password@localhost:27017/mydatabase?authSource=admin', {
useNewUrlParser: true,
useUnifiedTopology: true
});
const db = mongoose.connection;
db.on('error', console.error.bind(console, 'erreur de connexion :'));
db.once('open', function() {
console.log('Connecté à MongoDB');
});
PHP (Mongoose)
Exemple
require 'vendor/autoload.php'; // Inclure le fichier d'autoload de Composer
$client = new MongoDB\Client("mongodb://localhost:27017"); // Se connecter à l'instance MongoDB locale
$database = $client->selectDatabase('mydatabase'); // Sélectionner la base de données
$collection = $database->selectCollection('mycollection'); // Sélectionner la collection
// Insérer un document
$result = $collection->insertOne(['name' => 'Alice', 'age' => 30]);
echo "Inséré avec l'ID d'objet '{$result->getInsertedId()}'";
// Interroger un document
$document = $collection->findOne(['name' => 'Alice']);
echo "Document trouvé : " . json_encode($document);
?>
Java
Exemple
import com.mongodb.client.MongoClients;
import com.mongodb.client.MongoDatabase;
public class MongoDBConnection {
public static void main(String[] args) {
String uri = "mongodb://user:password@localhost:27017/mydatabase?authSource=admin";
try (MongoClient mongoClient = MongoClients.create(uri)) {
MongoDatabase database = mongoClient.getDatabase("mydatabase");
System.out.println("Connecté à MongoDB");
}
}
}
Exemple
Connectez-vous au service MongoDB en utilisant le port par défaut.
mongodb://localhost
Connectez-vous au service MongoDB via le shell:
./mongosh Current Mongosh Log ID: 66792d6b87657ebec9ed70f1 Connecting to: mongodb://127.0.0.1:27017/?directConnection=true&serverSelectionTimeoutMS=2000&appName=mongosh+2.2.9 Using MongoDB: 7.0.11 Using Mongosh: 2.2.9
À ce stade, revenez et regardez la fenêtre où vous avez exécuté la commande./mongod, et vous pouvez voir d'où il s'est connecté au serveur MongoDB. Vous pouvez voir les informations suivantes:
……省略信息……
2015-09-25T17:22:27.336+0800 I CONTROL [initandlisten] allocator: tcmalloc
2015-09-25T17:22:27.336+0800 I CONTROL [initandlisten] options: { storage: { dbPath: "/data/db" } }
2015-09-25T17:22:27.350+0800 I NETWORK [initandlisten] waiting for connections on port 27017
2015-09-25T17:22:36.012+0800 I NETWORK [initandlisten] connection accepted from 127.0.0.1:37310 #1 (1 connection now open) # 该行表明一个来自本机的连接
……省略信息……
Format de la commande de connexion MongoDB
Pour vous connecter au serveur MongoDB à l'aide d'un nom d'utilisateur et d'un mot de passe, vous devez utiliser le format 'username:password@hostname/dbname', 'username' est le nom d'utilisateur, 'password' est le mot de passe.
Utilisez un nom d'utilisateur et un mot de passe pour vous connecter et vous identifier à la base de données par défaut:
$ ./mongosh MongoDB shell version: 4.0.9 connecting to: test
Connectez-vous au service MongoDB local en utilisant l'utilisateur admin avec le mot de passe 123456. Le résultat de sortie est le suivant:
> mongodb://admin:123456@localhost/ ...
Utilisez un nom d'utilisateur et un mot de passe pour vous connecter et vous identifier à une base de données spécifiée, le format est le suivant:
mongodb://admin:123456@localhost/test
Plus d'exemples de connexion
Connectez-vous au serveur de base de données local ; le port est celui par défaut.
mongodb://localhost
Connectez-vous à la base de données admin sur localhost avec le nom d'utilisateur fred et le mot de passe foobar.
mongodb://fred:foobar@localhost
Connectez-vous à la base de données baz sur localhost avec le nom d'utilisateur fred et le mot de passe foobar.
mongodb://fred:foobar@localhost/baz
Connectez-vous à une paire de réplicas ; le serveur 1 est example1.com, le serveur 2 est example2.
mongodb://example1.com:27017,example2.com:27017
Connectez-vous à un ensemble de réplicas avec trois serveurs (ports 27017, 27018 et 27019) :
mongodb://localhost,localhost:27018,localhost:27019
Connectez-vous à un ensemble de réplicas avec trois serveurs ; les opérations d'écriture sont appliquées sur le serveur primaire et les lectures sont réparties vers les serveurs secondaires.
mongodb://host1,host2,host3/?slaveOk=true
Connectez-vous directement au premier serveur, qu'il fasse partie d'un ensemble de réplicas, ou qu'il soit le serveur primaire, ou un serveur secondaire.
mongodb://host1,host2,host3/?connect=direct;slaveOk=true
Lorsque vos serveurs de connexion ont la priorité et que vous devez également lister tous les serveurs, vous pouvez utiliser la méthode de connexion ci-dessus.
Connectez-vous à localhost en mode sécurisé :
mongodb://localhost/?safe=true
Connectez-vous à l'ensemble de réplicas en mode sécurisé, et attendez qu'au moins deux serveurs de réplicas aient écrit avec succès, avec un délai d'attente de 2 secondes.
mongodb://host1,host2,host3/?safe=true;w=2;wtimeoutMS=2000Autres extensions