关于mongodb:MongoDB学习笔记MongoDB-快速入门

31次阅读

共计 2859 个字符,预计需要花费 8 分钟才能阅读完成。

作者:幻好

起源:恒生 LIGHT 云社区

前言

当初大多数企业级计算机系统,通过关系型数据库 (RDMBS) 来存储数据。而在某些业务场景中须要零碎可能更快的响应,因为对关系数据库性能的思考,须要通过更好的计划对其进行优化,于是就有人提出了非关系型数据库的概念(NoSQL)。

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

MongoDB 是一个功能丰富的 NoSQL 数据库,本文整顿了它最罕用的局部造成了这篇入门教程,心愿对大家有所帮忙。

基本概念

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

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/d…

装置过程就省略了,装置失常流程下一步就行了,装置胜利后,可到 bin 目录下启动 MongoDB 的服务:

客户端工具

MongoDB 胜利后,还须要装置客户端工具能够通过界面的形式,更不便的治理 MongoDB 中的数据。MongoDB 相干的客户端工具有很多,这里咱们应用的是一款收费的客户端工具 Robo 3T(以前叫 Robomongo)。

  • 下载地址:https://robomongo.org/download
  • 装置胜利后,能够配置连贯参数进行连贯。

根本数据结构

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

SQL 概念 / 术语 MongoDB 概念 / 术语 解释 / 阐明
database database 数据库
table collection 数据库表 / 汇合
row document 数据记录行 / 文档
column field 数据字段 / 域
index index 索引
table joins 表连贯,MongoDB 不反对
primary key primary key 主键,MongoDB 主动将 _id 字段设置为主键

操作数据库

  • 创立数据库,应用 use [db_name] 命令去创立数据库,如下示例:
# 通过命令 show dbs 能够查看目前所有的库
> show dbs
admin   0.000GB
config  0.000GB
local   0.000GB
test    0.000GB
# 通过 use newdb 创立一个名字为 newdb 的数据库,并主动应用
> use newdb
switched to db newdb
> show dbs
admin   0.000GB
config  0.000GB
local   0.000GB
newdb   0.000GB
test    0.000GB
# 能够通过向数据库中新建一个表 / 汇合 newmap,并插入数据
> db.newmap.insert({name:"新的文档"})
WriteResult({"nInserted" : 1})
  • 删除数据库,通 db 对象中的 dropDatabase() 办法来删除,如下示例:
> db.dropDatabase()
{"dropped" : "newdb", "ok" : 1}
> show dbs
admin   0.000GB
config  0.000GB
local   0.000GB
test    0.000GB

操作汇合

  • 创立汇合,通过 db 对象中的 createCollection() 办法来创立汇合,例如创立一个 lightmap 汇合;
> use newdb
switched to db newdb
> db.createCollection('lightmap')
{"ok" : 1}
> show collections
lightmap
  • 删除汇合,能够通过 collection 对象的drop() 办法来删除汇合,例如删除一个 article 汇合;
> db.article.drop()
true
> show collections

总结

通过本文,次要解说了 MongoDB 的基本概念以及相干操作,后续会持续更加深刻的分享 MongoDB 的应用技巧。


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

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

扫描下方小程序二维码,退出咱们!

正文完
 0