MongoDB介绍

MongoDB是一种面向文档型的非关系型数据库(NoSQL),由C++编写。非关系数据库中是以键值对存储,结构不固定,易存储,减少时间和空间的开销。文档型数据库通常是以JSON或XML格式存储数据,而Mongodb使用的数据结构是BSON(二进制JSON),和JSON相比,BSON提高了存储和扫描效率,但空间占用会更多一些。

MongoDB官网:https://www.mongodb.com/

官方的自述:现代应用程序的数据库

MongoDB 是一个通用的、基于文档的分布式数据库,专为现代应用程序开发人员和云时代而构建。

MongoDB 是一个文档数据库,这意味着它将数据存储在类似 JSON 的文档中。我们相信这是思考数据的最自然的方式,并且比传统的行/列模型更具表现力和强大。

丰富的 JSON 文档

  • 最自然、最高效的数据处理方式。
  • 支持数组和嵌套对象作为值。
  • 允许灵活和动态的模式。
{"_id": "5cf0029caff5056591b0ce7d","firstname": "Jane","lastname": "Wu","address": {"street": "1 Circle Rd","city": "Los Angeles","state": "CA","zip": "90404"},"hobbies": ["surfing", "coding"]
}

强大的查询语言

  • 丰富而富有表现力的查询语言,允许您按任何字段进行过滤和排序,无论它在文档中如何嵌套。
  • 支持聚合和其他现代用例,例如基于地理的搜索、图形搜索和文本搜索。
  • 查询本身就是 JSON,因此很容易组合。不再需要连接字符串来动态生成 SQL 查询。
> db.users.find({ "address.zip" : "90404" })
{ "_id": "5cf0029caff5056591b0ce7d", "firstname": "Jane", "lastname": "Wu", "address": { "zip": "90404" } }
{ "_id": "507f1f77bcf86cd799439011", "firstname": "Jon", "lastname": "Davis", "address": { "zip": "90404" } }
{ "_id": "5349b4ddd2781d08c09890f3", "firstname": "Jim", "lastname": "White", "address": { "zip": "90404" } }
{ "_id": "5bf142459b72e12b2b1b2cd", "firstname": "Jeff", "lastname": "Taylor", "address": { "zip": "90404" } }
{ "_id": "5cf003283b23d04a40d5f88a", "firstname": "Jerry", "lastname": "Miller", "address": { "zip": "90404" } }
{ "_id": "5bf142459b72e12b2b1b2cd", "firstname": "Jai", "lastname": "Williams", "address": { "zip": "90404" } }
{ "_id": "5cf0036deaa1742dd225ea35", "firstname": "Jess", "lastname": "Johnson", "address": { "zip": "90404" } }
{ "_id": "54495ad94c934721ede76d90", "firstname": "Jill", "lastname": "Brown", "address": { "zip": "90404" } }
{ "_id": "566eb3c704c7b31facbb0007", "firstname": "Janet", "lastname": "Jones", "address": { "zip": "90404" } }
{ "_id": "5a999cc461d36489a27f2563", "firstname": "Jan", "lastname": "Smith", "address": { "zip": "90404" } }

关系数据库的所有功能

  • 具有快照隔离的分布式多文档 ACID 事务。
  • 支持查询中的连接。
  • 两种类型的关系而不是一种:引用和嵌入。
session.start_transaction()
order = { line_items : [ { item : 5, quantity: 6 } ] }
db.orders.insertOne( order, session=session );
for x in order.line_items:db.inventory.update({ _id  : x.item } ,{ $inc : { number : -1 * x.quantity } },session=session)
session.commit_transaction()

官方文档:https://docs.mongodb.com/manual/
官方文档 Python Drivers:https://docs.mongodb.com/drivers/pymongo/

MongoDB安装

肯定有小伙伴发现使用Python操作MongoDB时,发现没有数据怎么办?

两种方法:1.将MongoDB下载安装本地;2.MongoDB官方自带的云学习平台,无需安装MongoDB,直接使用(建议尝试)

Cloud 云端 (本篇重点)

建议尝试原因:Free免费
完全不用自己本地安装一个,直接用云端服务来学习,完全可以,就是要注册一个账号(很正常)

连不上?网慢?你都是程序猿了,不会用梯子?

1)注册账号

注册MongoDB官网的账号
也可以使用Google账号

2)创建项目

  1. 填写项目的名称
  2. 选择你的开发语言
  3. 选择你的云端的类型,就如同阿里云服务器一个意思,这里面你可以选择Free免费机器。
  4. 选择服务器的公司和地区,随便选,选择一个你能连接上的


3)配置连接项

  1. 添加你的本地IP,连接服务的本地IP,就是白名单,你想如何地方都可以连接,请设置:0.0.0.0/0 这个就是有点危险
  2. 数据库连接账号User
  3. 选择一个连接方法


4)三种连接方法

第一种,Shell窗口

  1. 根据你的系统平台,下载工具
  2. 配置系统环境
  3. 打开shell窗口,将代码复制粘贴,回车,输入密码,就连接到MongoDB服务了。


第二种,运用代码驱动

第一次测试的时候,遇到了个小问题:
pymongo.errors.ConfigurationError: The “dnspython” module must be installed to use mongodb+srv:// URIs
提示需要安装 “dnspython”

**解决方法:
pip3 install pymongo[srv]

pip3 install dnspython
**

Python 连接 MongoDB 成功!

第三种,可视化工具
MongoDB Compass Community:比较流行的MongoDB管理工具列表
可视化工具都不用找了,直接提供了一个最流行的工具,学习工作用这个工具足够了!


下载本地

根据自己的情况,选择版本,操作系统平台,包的类型,点击下载即可,自学下载社区版就可以。

小问题:MongoDB企业版收费吗?企业版和社区版的区别有什么?

目前:MongoDB是免费的。MongoDB社区版本和企业版本差异主要体现在安全认证、系统认证等方面。

MongoDB整理介绍 官方云端使用方法相关推荐

  1. MongoDB 官方云端使用方法

    MongoDB介绍 MongoDB是一种面向文档型的非关系型数据库(NoSQL),由C++编写.非关系数据库中是以键值对存储,结构不固定,易存储,减少时间和空间的开销.文档型数据库通常是以JSON或X ...

  2. YOLOv4 介绍及其模型优化方法

    YOLOv4 介绍及其模型优化方法 一.YOLOv4 介绍 2020 年 4 月,YOLOv4 在悄无声息中重磅发布,在目标检测领域引起广泛的讨论.在 YOLO 系列的原作者 Joseph Redmo ...

  3. 如何快速传输大文件,介绍大文件快速方法

    现在,企业比以往任何时候都面临着一个重大挑战:需要一个快速共享文件的解决方案.但是,并非所有快速文件传输解决方案都以相同的速度传输文件.文件大小.端点位置.路径.设备.防火墙.网络系统和加密需求都会限 ...

  4. RobotFramework全部内置库及第三方库介绍,以及安装方法

    RobotFramework全部内置标准库及第三方库介绍,以及安装方法 1.Libraries 1.1 Standard Libraries 内置标准库 1.2 External Libraries ...

  5. Mongodb数据库介绍

    Mongodb数据库介绍 一种非关系型数据库mongodb,mongodb数据库主要用于海量存储,常被用在数据采集项目中. mongodb官方文档 https://docs.mongodb.com/ ...

  6. c# BackgroundWorker组件介绍(属性、方法、事件)

    c# BackgroundWorker组件介绍(属性.方法.事件) 2008-07-03 16:28 在VS2005中添加了BackgroundWorker组件,该组件在多线程编程方面使用起来非常方便 ...

  7. 微博官方API使用方法【全流程教学】

    微博官方API使用方法[全流程教学] 微博开发者身份认证 创建自己的应用 新应用的相关配置 基本信息 高级信息 微博认证流程OAuth2.0认证(核心步骤) Access Token授权有效期 接口调 ...

  8. matlab memory 代数环,[2018年最新整理]simulink代数环解决方法.doc

    [2018年最新整理]simulink代数环解决方法 一,代数环 在simulink中,直接馈通定义为系统的输出直接依赖输入,也就是说,模块的输出方程中包含输入则此模块具备直接馈通特性将带有直接馈通特 ...

  9. MongoDb企业应用实战(一) 写在MongoDB应用介绍之前(ii)

    上一篇: MongoDb企业应用实战(一) 写在MongoDB应用介绍之前(i) 有段时间没跟大家去分享和探讨过一些问题,分享过一些经验了(失败过的,痛苦过的才最有看点啊,不知道各位同仁们怎么去看这个 ...

最新文章

  1. [递归]一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。
  2. python tkinter选择路径控件_Python3 Tkinter选择路径功能的实现方法
  3. anaconda -spyder报错解决-UnicodeDecodeError: 'gbk' codec can't decode byte 0x93 in position 611: illegal
  4. boost::phoenix::arg_names::arg1用法的测试程序
  5. 如何在10分钟内让Redux发挥作用
  6. 【C语言重点难点精讲】关键字精讲
  7. 和 Python 2.x 说再见!
  8. DeepMind新智能体架构Unicorn:持续学习能力胜过多个基准智能体
  9. Mychael原创题 洛谷T23923 Mychaelの水题 【题解】
  10. QTP添加java插件
  11. Python读写excel练习_去除excel中乱码行,并添加列
  12. 正式开始撰写《产品大师》,经验来自点滴的积累
  13. 计算机软件专业硕士论文,软件工程硕士论文范文
  14. pli测试50题题库_面试人员情商测试50题1
  15. SqlServer 对象名无效的解决方法
  16. 最新解决百度网盘不限速方法
  17. 在Android Studio如何制作聊天气泡
  18. 回溯法解决01背包-非递归算法-效率低
  19. Android Telephony纲要
  20. Python CNN卷积神经网络实例讲解,CNN实战,CNN代码实例,超实用

热门文章

  1. Python + Selenium + UnitTest自动化测试面试题目整理
  2. 用Python爬了爬自己的微信朋友
  3. 我用nodejs和electron实现了一个简单的聊天软件-----chat 开源
  4. SpringCloud知识点梳理 - 1.服务注册中心组件--Eureka
  5. android 关于google刘海屏的解决方案
  6. 如何成为一名oracle DBA
  7. MySQL简介和基本使用
  8. spring ORM是什么,spring的七大模块有哪些
  9. Thinking in System Approach
  10. java跨平台 ios_Smobiler如何实现.net一键开发,ios和android跨平台运行