Tutoriel MongoD...login
Tutoriel MongoDB
auteur:php.cn  temps de mise à jour:2022-04-21 17:49:03

Connexion MongoDB


Dans ce tutoriel, nous aborderons les différentes méthodes de connexion de MongoDB.


Démarrer le service MongoDB

Dans le tutoriel précédent, nous avons discutécomment démarrer le service MongoDB Il vous suffit d'aller dans le répertoire bin de. le répertoire d'installation de MongoDB. Exécutez simplement 'mongod'.

Après avoir exécuté l'opération de démarrage, mongodb ne produira aucune information après avoir fourni certaines informations nécessaires, puis attendra que la connexion soit établie. Une fois la connexion établie, il commencera à imprimer les informations du journal.

Vous pouvez utiliser le shell MongoDB pour vous connecter au serveur MongoDB. Vous pouvez également utiliser PHP pour vous connecter à MongoDB. Dans ce didacticiel, nous utiliserons le shell MongoDB pour nous connecter au service MongoDB. Dans les chapitres suivants, nous présenterons comment se connecter au service MongoDB via php.



Connectez-vous au service MongoDB via le shell

Vous pouvez vous connecter au service MongoDB en exécutant la commande suivante.

Remarque : localhost est le nom d'hôte, cette option est obligatoire :

mongodb://localhost

Lorsque vous Lors de l'exécution de la commande ci-dessus, vous pouvez voir le résultat suivant :

$ ./mongo
MongoDB shell version: 3.0.6
connecting to: test
> mongodb://localhostmongodb://localhost
...

À ce moment, vous pouvez revenir à la fenêtre exécutant la commande ./mongod et vous pouvez voir où vous connecter le 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

Utilisez le nom d'utilisateur et le mot de passe pour vous connecter au serveur MongoDB, vous devez utiliser ' Format username:password @hostname/dbname', 'username' est le nom d'utilisateur, 'password' est le mot de passe.

Utilisez le nom d'utilisateur et le mot de passe pour vous connecter à la base de données par défaut :

$ ./mongo
MongoDB shell version: 3.0.6
connecting to: test
mongodb://admin:123456@localhost/

Dans la commande ci-dessus, l'utilisateur admin utilise le mot de passe 123456 pour se connecter au service MongoDB local. Les résultats de sortie sont les suivants : <, p>

> mongodb://admin:123456@localhost/
...

Utiliser le nom d'utilisateur et le mot de passe pour vous connecter et vous connecter à la base de données spécifiée :

Le format de connexion à la base de données spécifiée est le suivant suit :

mongodb://admin:123456@localhost/test


Plus d'instances de connexion

Connectez-vous au local serveur de base de données, le port est celui par défaut.

mongodb://localhost

Utilisez le nom d'utilisateur fred et le mot de passe foobar pour vous connecter à la base de données d'administration de localhost.

mongodb://fred:foobar@localhost

Utilisez le nom d'utilisateur fred et le mot de passe foobar pour vous connecter à la base de données baz de localhost.

mongodb://fred:foobar@localhost/baz

Connectez la paire de répliques, le serveur 1 est exemple1.com le serveur 2 est exemple2.

mongodb://example1.com:27017,example2.com:27017

Connectez le jeu de réplicas à trois serveurs (ports 27017, 27018 et 27019) :

mongodb://localhost,localhost:27018,localhost:27019

Connectez le jeu de réplicas à trois serveurs, l'opération d'écriture est appliquée au serveur maître et la requête est distribué au serveur esclave.

mongodb://host1,host2,host3/?slaveOk=true

Connectez-vous directement au premier serveur, qu'il fasse partie d'un jeu de répliques ou du serveur maître ou du serveur esclave.

mongodb://host1,host2,host3/?connect=direct;slaveOk=true

Lorsque votre serveur de connexion est prioritaire, vous devez également lister tous les serveurs , vous pouvez utiliser la méthode de connexion ci-dessus.

Connectez-vous à localhost en mode sans échec :

mongodb://localhost/?safe=true

Connectez-vous au jeu de réplicas en mode sans échec et attendez Au moins deux serveurs de réplication écrivent avec succès et le délai d'attente est défini sur 2 secondes.

mongodb://host1,host2,host3/?safe=true;w=2;wtimeoutMS=2000


Description de l'option de paramètre

Format standard :

mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN] ]][/[database][?options]]

Le format de connexion standard contient plusieurs options (options), comme indiqué ci-dessous :

< tbody> < tr>
OptionDescription
replicaSet=nameVérifier le nom du jeu de réplicas. Impliesconnect=replicaSet.
slaveOk=true|false
  • 选项描述
    replicaSet=name验证replica set的名称。 Impliesconnect=replicaSet.
    slaveOk=true|false
    • true:在connect=direct模式下,驱动会连接第一台机器,即使这台服务器不是主。在connect=replicaSet模式下,驱动会发送所有的写请求到主并且把读取操作分布在其他从服务器。

    • false: 在 connect=direct模式下,驱动会自动找寻主服务器. 在connect=replicaSet 模式下,驱动仅仅连接主服务器,并且所有的读写命令都连接到主服务器。

    safe=true|false
      • true: 在执行更新操作之后,驱动都会发送getLastError命令来确保更新成功。(还要参考 wtimeoutMS).

    false: 在每次更新之后,驱动不会发送getLastError来确保更新成功。
    w=n驱动添加 { w : n } 到getLastError命令. 应用于safe=true。
    wtimeoutMS=ms驱动添加 { wtimeout : ms } 到 getlasterror 命令. 应用于 safe=true.
    fsync=true|false
    • true: 驱动添加 { fsync : true } 到 getlasterror 命令.应用于 safe=true.

    • false: 驱动不会添加到getLastError命令中。

    journal=true|false如果设置为 true, 同步到 journal (在提交到数据库前写入到实体中). 应用于 safe=true
    connectTimeoutMS=ms可以打开连接的时间。
    socketTimeoutMS=ms发送和接受sockets的时间。
    true : En mode connect=direct, le driver se connectera à la première machine, même si ce serveur n'est pas le maître. En mode connect=replicaSet, le pilote envoie toutes les demandes d'écriture au maître et distribue les opérations de lecture aux autres serveurs esclaves.
  • false : En mode connect=direct, le pilote recherchera automatiquement le serveur principal. En mode connect=replicaSet, le pilote se connecte uniquement au serveur principal, et tout est lu et lu. les commandes d'écriture sont connectées au serveur principal. <🎜>
safe=true|false
    < ul style="list-style-type: square;" class=" list-paddingleft-2">
  • <🎜>true : Après avoir effectué l'opération de mise à jour, le pilote enverra la commande getLastError pour s'assurer que la mise à jour est réussi. (Reportez-vous également à wtimeoutMS).<🎜>
false : après chaque mise à jour, le pilote n'enverra pas getLastError pour garantir que la mise à jour est réussie.
w=nLe pilote ajoute { w : n } à la commande getLastError. S'applique à safe=true.
wtimeoutMS=msLe pilote ajoute { wtimeout : ms } à la commande getlasterror S'applique à safe=true.fsync=true|false
  • <🎜>true : Le pilote ajoute { fsync : true } au getlasterror commande. Appliquer à safe=true.<🎜>
  • <🎜>false : le pilote ne sera pas ajouté à la commande getLastError. <🎜>
journal=true|falseSi défini sur true, synchronisez avec le journal (avant de soumettre à la base de données écrit dans l'entité auparavant). S'applique à safe=true
connectTimeoutMS=msL'heure à laquelle la connexion peut être ouverte.
socketTimeoutMS=msL'heure d'envoi et de réception des sockets.
<🎜><🎜>