开心档-软件开发入门之MongoDB - 连接

本文涉及的产品
云数据库 MongoDB,独享型 2核8GB
推荐场景:
构建全方位客户视图
简介: 本章将会讲解在前面的教程中,我们已经讨论了如何启动 MongoDB 服务,你只需要在 MongoDB 安装目录的 bin 目录下执行 mongodb 即可。

   

    • 作者简介:每天分享MongoDB教程的学习经验、和学习笔记。
    • 座右铭:有自制力,做事有始有终;学习能力强,愿意不断地接触学习新知识。
    • 个人主页: 雪奈ie的主页

    前言

    本章将会讲解在前面的教程中,我们已经讨论了如何启动 MongoDB 服务,你只需要在 MongoDB 安装目录的 bin 目录下执行 mongodb 即可。

    目录

    MongoDB - 连接

    启动 MongoDB 服务

    实例

    MongoDB 连接命令格式

    更多连接实例


    在本教程我们将讨论 MongoDB 的不同连接方式。

    启动 MongoDB 服务

    在前面的教程中,我们已经讨论了如何启动 MongoDB 服务,你只需要在 MongoDB 安装目录的 bin 目录下执行 mongodb 即可。

    执行启动操作后,mongodb 在输出一些必要信息后不会输出任何信息,之后就等待连接的建立,当连接被建立后,就会开始打印日志信息。

    你可以使用 MongoDB shell 来连接 MongoDB 服务器。你也可以使用 PHP 来连接 MongoDB。本教程我们会使用 MongoDB shell 来连接 Mongodb 服务,之后的章节我们将会介绍如何通过php 来连接MongoDB服务。

    标准 URI 连接语法:

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

    image.gif

      • mongodb:// 这是固定的格式,必须要指定。
      • username:password@ 可选项,如果设置,在连接数据库服务器之后,驱动都会尝试登录这个数据库
      • host1 必须的指定至少一个host, host1 是这个URI唯一要填写的。它指定了要连接服务器的地址。如果要连接复制集,请指定多个主机地址。
      • portX 可选的指定端口,如果不填,默认为27017
      • /database如果指定username:password@,连接并验证登录指定数据库。若不指定,默认打开 test 数据库。
      • ?options 是连接选项。如果不使用/database,则前面需要加上/。所有连接选项都是键值对name=value,键值对之间通过&或;(分号)隔开

      标准的连接格式包含了多个选项(options),如下所示:

      选项 描述
      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的时间。

      实例

      使用默认端口来连接 MongoDB 的服务。

      mongodb://localhost

      image.gif

      通过 shell 连接 MongoDB 服务:

      $ ./mongo
      MongoDB shell version: 4.0.9
      connecting to: test
      ...

      image.gif

      这时候你返回查看运行 ./mongod 命令的窗口,可以看到是从哪里连接到MongoDB的服务器,您可以看到如下信息:

      ……省略信息……
      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)  # 该行表明一个来自本机的连接
      ……省略信息……

      image.gif


      MongoDB 连接命令格式

      使用用户名和密码连接到 MongoDB 服务器,你必须使用 'username:password@hostname/dbname' 格式,'username'为用户名,'password' 为密码。

      使用用户名和密码连接登录到默认数据库:

      $ ./mongo
      MongoDB shell version: 4.0.9
      connecting to: test

      image.gif

      使用用户 admin 使用密码 123456 连接到本地的 MongoDB 服务上。输出结果如下所示:

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

      image.gif

      使用用户名和密码连接登录到指定数据库,格式如下:

      mongodb://admin:123456@localhost/test

      image.gif

      更多连接实例

      连接本地数据库服务器,端口是默认的。

      mongodb://localhost

      image.gif

      使用用户名fred,密码foobar登录localhost的admin数据库。

      mongodb://fred:foobar@localhost

      image.gif

      使用用户名fred,密码foobar登录localhost的baz数据库。

      mongodb://fred:foobar@localhost/baz

      image.gif

      连接 replica pair, 服务器1为example1.com服务器2为example2。

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

      image.gif

      连接 replica set 三台服务器 (端口 27017, 27018, 和27019):

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

      image.gif

      连接 replica set 三台服务器, 写入操作应用在主服务器 并且分布查询到从服务器。

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

      image.gif

      直接连接第一个服务器,无论是replica set一部分或者主服务器或者从服务器。

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

      image.gif

      当你的连接服务器有优先级,还需要列出所有服务器,你可以使用上述连接方式。

      安全模式连接到localhost:

      mongodb://localhost/?safe=true

      image.gif

      以安全模式连接到replica set,并且等待至少两个复制服务器成功写入,超时时间设置为2秒。

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

      image.gif

      上一篇

      MongoDB 固定集合(Capped Collections)

      下一篇

      MongoDB 覆盖索引查询


      相关文章
      |
      NoSQL MongoDB
      MongoDB入门-sort和投影
      这篇文章介绍了MongoDB中的排序(sort)和投影(projection)操作,通过示例代码展示了如何使用这些功能来控制查询结果的排序顺序和返回的字段。
      117 3
      MongoDB入门-sort和投影
      |
      NoSQL MongoDB
      MongoDB入门-MongoDB的CURD语句练习
      这篇文章提供了MongoDB的CURD操作的练习,涵盖了插入、查询、更新和删除数据的基本命令,并通过具体示例展示了如何在MongoDB中执行这些操作。
      102 2
      |
      7月前
      |
      存储 NoSQL Linux
      微服务2——MongoDB单机部署4——Linux系统中的安装启动和连接
      本节主要介绍了在Linux系统中安装、启动和连接MongoDB的详细步骤。首先从官网下载MongoDB压缩包并解压至指定目录,接着创建数据和日志存储目录,并配置`mongod.conf`文件以设定日志路径、数据存储路径及绑定IP等参数。之后通过配置文件启动MongoDB服务,并使用`mongo`命令或Compass工具进行连接测试。此外,还提供了防火墙配置建议以及服务停止的两种方法:快速关闭(直接杀死进程)和标准关闭(通过客户端命令安全关闭)。最后补充了数据损坏时的修复操作,确保数据库的稳定运行。
      451 0
      |
      7月前
      |
      NoSQL JavaScript Shell
      微服务2——MongoDB单机部署2——Shell连接
      本节介绍如何通过Shell连接MongoDB数据库,使用`mongo`命令登录,默认连接本地127.0.0.1的27017端口。可查看数据库列表(`show databases`),退出shell(`exit`),或通过`--help`获取更多参数。MongoDB Shell基于JavaScript解释器,支持运行JS程序。
      171 0
      |
      12月前
      |
      存储 NoSQL MongoDB
      MongoDB入门级别教程全(Windows版,保姆级教程)
      一份全面的MongoDB入门级教程,包括在Windows系统上安装MongoDB、使用MongoDB Shell和Compass GUI进行数据库操作,以及MongoDB的基本数据类型和查询技巧。
      2362 2
      MongoDB入门级别教程全(Windows版,保姆级教程)
      |
      12月前
      |
      NoSQL 网络安全 MongoDB
      MongoDB - 连接
      10月更文挑战第12天
      600 1
      |
      12月前
      |
      NoSQL 前端开发 JavaScript
      Node.js 连接 MongoDB
      10月更文挑战第20天
      105 0
      |
      12月前
      |
      NoSQL 前端开发 JavaScript
      Node.js 连接 MongoDB
      10月更文挑战第9天
      163 0
      |
      存储 NoSQL MongoDB
      01 MongoDB的概述、应用场景、下载方式、连接方式和发展历史等
      文章详细介绍了MongoDB的概览、应用场景、下载与连接方式,并涵盖了MongoDB的主要特性及其在数据存储方面的优势。
      188 0
      |
      持续交付 jenkins C#
      “WPF与DevOps深度融合:从Jenkins配置到自动化部署全流程解析,助你实现持续集成与持续交付的无缝衔接”
      【8月更文挑战第31天】本文详细介绍如何在Windows Presentation Foundation(WPF)项目中应用DevOps实践,实现自动化部署与持续集成。通过具体代码示例和步骤指导,介绍选择Jenkins作为CI/CD工具,结合Git进行源码管理,配置构建任务、触发器、环境、构建步骤、测试及部署等环节,显著提升开发效率和代码质量。
      251 0

      推荐镜像

      更多