NoSQL学习——文档数据库MongoDB(一)MongoDB环境与常用工具

11/17/2021 NoSQLMongoDB

# MongoDB是什么

MongoDB是一个文档型数据库服务,提供面向json/bson的文档存储。通过文档存储的方式,这种数据库提供了灵活的schema,从而支持具有复杂数据结构的应用开发。此外,MongoDB通过集群上的复制和分片实现了可扩展性,并能够通过一系列不同的设置对数据库服务的一致性和可用性进行平衡。因此,MongoDB可以被认为是一种为现代复杂的网络数据所准备的数据库。

# MongoDB的安装

MongoDB在不同环境下的安装都较为简单,使用官方网站 (opens new window)提供的下载链接和文档可以较为快速地完成安装和服务的启动。在这个数据库系统中,有两种主要的服务/工具,其一是数据库服务,用于实际执行指令和进行存储;其二是与之进行交互的客户端程序,用于编写指令、查看数据库存储和运行状态等,此外该服务还可能用于启动数据库服务本身。两种服务并不一定需要运行在一台机器上。

# 数据库的连接

MongoDB在运行时会在本地启动一个监听端口,默认为27017,例如本地服务的连接方式通常是mongodb://localhost:27017,协议名称与是否使用加密有关,服务的主机名取决于机器的网络,端口号则由用户指定或默认生成。在连接到数据库时,MongoDB有时会要求认证,从而在一定程度上确保数据库的安全性。完成连接到认证的一系列操作后,客户端会与数据库服务形成一个session,在关闭连接前,所有操作都属于这个session,而这与MongoDB的读写一致性存在一定的联系。

# 常用的工具

下面介绍一些常用的MongoDB学习工具:

  • 客户端程序:
    • Robo3T:能够较为方便地编写指令和查看存储的文档;
    • VsCode + MongoDB扩展:尚在开发中,VsCode的集成使其能够与其他开发更便捷地同时进行;
    • MongoDB Compass:官方提供的客户端程序,与Robo3T类似;
    • Mongosh:命令行客户端,可用于测试查询指令或集成到应用程序中;
    • 各种编程语言的客户端包:方便各种语言开发使用;
  • 数据库服务:
    • Windows桌面版:通过与客户端的集成实现了较为方便的开箱即用,适合进行学习和测试。
    • Linux服务:可运行在服务器上,通过包管理能够较为方便地安装。
    • 容器服务:在拥有docker的情况下,通过简单的docker pull mongo并运行即可使用,较为方便,且能够通过容器编排与其他服务一起开发应用。
    • Mongo Atlas:官方提供的demo级服务,运行于云端,且可以拓展,可用于尝试MongoDB和基础开发。
  • 参考文档:官方文档 (opens new window)始终是最为权威的参考依据,在参考任何其他文档时,如有疑问都应当到官方文档中寻找对应内容并进行比较。

# 总结

本章简单介绍了MongoDB的用途和相关的工具。下一章中,我们将会对MongoDB进行基础的认识。