写点什么

【MongoDB 学习笔记】MongoDB 快速入门

  • 2021 年 12 月 20 日
  • 本文字数:2268 字

    阅读完需:约 7 分钟

作者:幻好

来源:恒生LIGHT云社区

前言

现在大多数企业级计算机系统,通过关系型数据库(RDMBS)来存储数据。而在某些业务场景中需要系统能够更快的响应,由于对关系数据库性能的考虑,需要通过更好的方案对其进行优化,于是就有人提出了非关系型数据库的概念(NoSQL)。


NoSQL 是一项全新的数据库革命性运动,用于超大规模数据的存储。(例如谷歌或 Facebook 每天为他们的用户收集万亿比特的数据)。这些类型的数据存储不需要固定的模式,无需多余操作就可以横向扩展。


MongoDB 是一个功能丰富的 NoSQL 数据库,本文整理了它最常用的部分形成了这篇入门教程,希望对大家有所帮助。

基本概念

MongoDB 是一个基于分布式文件存储的数据库。由 C++ 语言编写,旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的数据库。


4159


MongoDB 将数据存储为一个文档,数据结构由键值(key=>value)对组成。MongoDB 文档类似于 JSON 对象。字段值可以包含其他文档,数组及文档数组。


{    "name": "JacK",    "class": "一班",    "age": 19,}
复制代码

主要特点

  • MongoDB 支持各种编程语言:RUBY,PYTHON,JAVA,C++,PHP,C#等多种语言。

  • Mongo 支持丰富的查询表达式。查询指令使用 JSON 形式的标记,可轻易查询文档中内嵌的对象及数组。

  • Mongodb 中的 Map/reduce 主要是用来对数据进行批量处理和聚合操作。

  • MongoDB 允许在服务端执行脚本,可以用 Javascript 编写某个函数,直接在服务端执行,也可以把函数的定义存储在服务端,下次直接调用即可。

  • MongoDB 提供了一个面向文档存储,操作起来比较简单和容易。

  • MongoDB 可以在记录中设置任何属性的索引 (如:FirstName="Sameer",Address="8 Gandhi Road")来实现更快的排序。

应用场景

  • 服务的日志记录,日常我们会把一些应用日志存储到文本格式的文件中,这样不便于查看同时也不便于统计等。通过 MongoDB 存储,既可以很好的存储、统计同时也方便不同的业务场景下日志数据格式不一致等情况。

  • 爬虫信息抓取与存储,我们在一些业务场景中难免会去使用到第三方的数据,当接入多个第三方平台时,这时候我们需要考虑到每个平台数据格式不一致,自身的存储系统结构设计等情况。这时候我们使用 MongoDB 来存储就很好的避免了这个问题。

  • 运维监控系统,在一些大型的项目中,监控是必不可少的。监控系统要监控的内容,可能是随时多变的,这时候使用 MongoDB 就体现了很大的便利。不需要去修改数据库的结构,直接根据业务需要灵活调整即可。大大降低了开发成本

  • O2O 业务场景,将送快递骑手、快递商家的信息(包含位置信息)存储在 MongoDB,然后通过 MongoDB 的地理位置查询,这样很方便的实现了查找附近的商家、骑手等功能。

  • 游戏业务场景,使用 MongoDB 存储游戏用户信息,用户的装备、积分等直接以内嵌文档的形式存储,方便查询、更新。

  • 社交业务场景,使用 MongoDB 存储存储用户信息,以及用户发表的朋友圈信息,通过地理位置索引实现附近的人、地点等功能。

  • 物联网业务场景,使用 MongoDB 存储所有接入的智能设备信息,以及设备汇报的日志信息,并对这些信息进行多维度的分析。

MongoDB 安装

MongoDB 提供了可用直接安装的二进制包,可以从 MongoDB 官网下载安装,可以下载各个系统的安装包。


  • 下载地址:https://www.mongodb.com/try/download/community

  • 4160


安装过程就省略了,安装正常流程下一步就行了,安装成功后,可到 bin 目录下启动 MongoDB 的服务:

客户端工具

MongoDB 成功后,还需要安装客户端工具可以通过界面的方式,更方便的管理 MongoDB 中的数据。MongoDB 相关的客户端工具有很多,这里我们使用的是一款免费的客户端工具 Robo 3T(以前叫 Robomongo)。


  • 下载地址:https://robomongo.org/download

  • 4163
  • 安装成功后,可以配置连接参数进行连接。

  • 4164

基本数据结构

MongoDB 中基本的概念是文档、集合、数据库等,为了更容易理解 Mongo 中的一些概念,通过对比 SQL 的概念:


操作数据库

  • 创建数据库,使用use [db_name]命令去创建数据库,如下示例:


# 通过命令 show dbs 可以查看目前所有的库> show dbsadmin   0.000GBconfig  0.000GBlocal   0.000GBtest    0.000GB# 通过 use newdb 创建一个名字为 newdb 的数据库,并自动使用> use newdbswitched to db newdb> show dbsadmin   0.000GBconfig  0.000GBlocal   0.000GBnewdb   0.000GBtest    0.000GB# 可以通过向数据库中新建一个表/集合 newmap,并插入数据> db.newmap.insert({name:"新的文档"})WriteResult({ "nInserted" : 1 })
复制代码


  • 删除数据库,通 db 对象中的dropDatabase()方法来删除,如下示例:


> db.dropDatabase(){ "dropped" : "newdb", "ok" : 1 }> show dbsadmin   0.000GBconfig  0.000GBlocal   0.000GBtest    0.000GB
复制代码

操作集合

  • 创建集合,通过 db 对象中的createCollection()方法来创建集合,例如创建一个lightmap集合;


> use newdbswitched to db newdb> db.createCollection('lightmap'){ "ok" : 1 }> show collectionslightmap
复制代码


  • 删除集合,可以通过collection 对象的drop()方法来删除集合,例如删除一个article集合;


> db.article.drop()true> show collections
复制代码

总结

通过本文,主要讲解了 MongoDB 的基本概念以及相关操作,后续会继续更加深入的分享 MongoDB 的使用技巧。



想向技术大佬们多多取经?开发中遇到的问题何处探讨?如何获取金融科技海量资源?


恒生LIGHT云社区,由恒生电子搭建的金融科技专业社区平台,分享实用技术干货、资源数据、金融科技行业趋势,拥抱所有金融开发者。


扫描下方小程序二维码,加入我们!



发布于: 1 小时前阅读数: 6
用户头像

还未添加个人签名 2018.11.07 加入

还未添加个人简介

评论

发布
暂无评论
【MongoDB学习笔记】MongoDB 快速入门