1.概念篇

MongoDB和MySQL分别作为非关系型数据库和关系型数据库的代表,通过它们之间的对比可以很快的建立起对MongoDB的认知。

MongoDB MySQL
数据库(Database) 数据库(Database)
集合(Collection) 表(Table)
文档(Document) 记录(record)

对于关系型数据库,一般来说,我们可以简单的理解为:一个数据库管理应用,可以创建多个数据库(databases),每个数据库可以管理很多个表(tables),表中存储的就是可以CURD的记录(records),这种管理层级同样可以映射到MongoDB上。

与MySQL不同的是,MongoDB的数据具有灵活的模式 。集合本身没有对文档结构的规则性校验,而表的设计从一开始就约束死了记录该包含的字段名。

需要注意的是,MongoDB作为非关系型数据库,不是说其我们使用时不能设计成关系型的结构,我们同样可以人为地约束(document)文档结构包含的数据的类型,(与MySQl不同的是,MongoDB的文档支持数组和对象、子文档等复杂的数据结构)同样文档之间也可以设计成类似ER图的关系模型。
下面是官网提供的一个书籍分类树形结构数据建模的例子

传统的关系型数据库的设计思想是把每个节点当做一个记录,每个节点保存其父节点的_id.

_id parent
MongoDB Databases
dbm Databases
Databases Programming
Languages Programming
Programming Books
Books null

这种关系也可以使用MongoDB存储

db.categories.insert( { _id: "MongoDB", parent: "Databases" } )
db.categories.insert( { _id: "dbm", parent: "Databases" } )
db.categories.insert( { _id: "Databases", parent: "Programming" } )
db.categories.insert( { _id: "Languages", parent: "Programming" } )
db.categories.insert( { _id: "Programming", parent: "Books" } )
db.categories.insert( { _id: "Books", parent: null } )

其他几种树形结构的建模方法请参考
Model Tree Structures
Modeling a Tree in a Document Database

2.快速操作篇

  • 下载安装客户端
    https://docs.mongodb.com/manual/administration/install-community/
  • 开启MongoDB服务
    (1)创建数据库存储目录

    mkdir -p ~/yourdir/db

    确保当前用户拥有该目录的读写权限
    (2)开启服务

    mongod --dbpath <path to data directory>

    再此之前确保mongod命令路径已经加入到了系统环境变量

  • 使用mongo shell 操作数据库
    (1)连接到数据库,开启命令模式

    mongo --host 127.0.0.1:27017

    如果使用默认参数,后面的参数可以省略
    (2)显示目前操作的数据库

    db

    (3)切换数据库

    use <database>

    当第一次存储数据到数据库时,MongoDB会自动创建数据库及集合

    use myNewDatabase
    db.myCollection.insertOne( { x: 1 } );

    上面的insertOne语句会自动创建myNewDatabase数据库,与myCollection集合。

3.MongoDB 增删改查 操作

db.collection.insertOne()
db.collection.insertMany()
db.collection.deleteOne()
db.collection.deleteMany()
db.collection.updateOne()
db.collection.updateMany()
db.collection.replaceOne()
db.collection.find()

MongoDB超级简明入门教程的更多相关文章

  1. OsharpNS轻量级.net core快速开发框架简明入门教程-从零开始启动Osharp

    OsharpNS轻量级.net core快速开发框架简明入门教程 教程目录 从零开始启动Osharp 1.1. 使用OsharpNS项目模板创建项目 1.2. 配置数据库连接串并启动项目 1.3. O ...

  2. OsharpNS轻量级.net core快速开发框架简明入门教程-Osharp.Redis使用

    OsharpNS轻量级.net core快速开发框架简明入门教程 教程目录 从零开始启动Osharp 1.1. 使用OsharpNS项目模板创建项目 1.2. 配置数据库连接串并启动项目 1.3. O ...

  3. OsharpNS轻量级.net core快速开发框架简明入门教程-代码生成器的使用

    OsharpNS轻量级.net core快速开发框架简明入门教程 教程目录 从零开始启动Osharp 1.1. 使用OsharpNS项目模板创建项目 1.2. 配置数据库连接串并启动项目 1.3. O ...

  4. OsharpNS轻量级.net core快速开发框架简明入门教程-基于Osharp实现自己的业务功能

    OsharpNS轻量级.net core快速开发框架简明入门教程 教程目录 从零开始启动Osharp 1.1. 使用OsharpNS项目模板创建项目 1.2. 配置数据库连接串并启动项目 1.3. O ...

  5. OsharpNS轻量级.net core快速开发框架简明入门教程-Osharp.Hangfire使用

    OsharpNS轻量级.net core快速开发框架简明入门教程 教程目录 从零开始启动Osharp 1.1. 使用OsharpNS项目模板创建项目 1.2. 配置数据库连接串并启动项目 1.3. O ...

  6. Mongodb最基础入门教程

      Mongodb最基础入门教程 如果想了解一下redis的入门教程,可以去看一下我的上一篇博客 Mongodb的安装大家可以参考一下其他博主的博客,这里我就不做介绍了.不过值得注意的是,在Linux ...

  7. OsharpNS轻量级.net core快速开发框架简明入门教程-Osharp.Permissions使用

    OsharpNS轻量级.net core快速开发框架简明入门教程 教程目录 从零开始启动Osharp 1.1. 使用OsharpNS项目模板创建项目 1.2. 配置数据库连接串并启动项目 1.3. O ...

  8. OsharpNS轻量级.net core快速开发框架简明入门教程-切换数据库(从SqlServer改为MySql)

    OsharpNS轻量级.net core快速开发框架简明入门教程 教程目录 从零开始启动Osharp 1.1. 使用OsharpNS项目模板创建项目 1.2. 配置数据库连接串并启动项目 1.3. O ...

  9. OsharpNS轻量级.net core快速开发框架简明入门教程-多上下文配置(多个数据库的使用)

    OsharpNS轻量级.net core快速开发框架简明入门教程 教程目录 从零开始启动Osharp 1.1. 使用OsharpNS项目模板创建项目 1.2. 配置数据库连接串并启动项目 1.3. O ...

随机推荐

  1. params.success && params.success(res.data)

    params.success && params.success(res.data)   只有success 为真,才执行后边的代码

  2. idea打开项目,没有项目文件,文件报红

    删除项目文件夹中的.idea文件,重启idea,再执行如下操作.

  3. vue2.0实现过滤

    vue1.0和vue2.0差别还是挺多的,之前的vue1.0还有过滤器功能,到了2.0过滤器只能通过自己编写.以下是写的一个小demo: HTML <div id="app" ...

  4. Linux基本命令总结(九)

    接上篇: 46,scp是secure copy的简写,用于在Linux下进行远程拷贝文件的命令,和它类似的命令有cp,不过cp只是在本机进行拷贝不能跨服务器,而且scp传输是加密的.可能会稍微影响一下 ...

  5. GWAS: 曼哈顿图,QQ plot 图,膨胀系数( manhattan、Genomic Inflation Factor)

    画曼哈顿图和QQ plot 首推R包“qqman”,简约方便.下面具体介绍以下. 一.画曼哈顿图 install.packages("qqman") library(qqman) ...

  6. 删除链表倒数第n个节点

    题目: 给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点. 示例: 给定一个链表: 1->2->3->4->5, 和 n = 2. 当删除了倒数第二个节点后,链 ...

  7. IrisSkin 单独控件样式设置 不使用皮肤样式

    可以设置控件的Tag为this.skinEngine1.DisableTag [DefaultValue()] [Description("If you do not want skin t ...

  8. 第四节:MVC中AOP思想的体现(四种过滤器)并结合项目案例说明过滤器的实际用法

    一. 简介 MVC中的过滤器可以说是MVC框架中的一种灵魂所在,它是MVC框架中AOP思想的具体体现,所以它以面向切面的形式无侵入式的作用于代码的业务逻辑,与业务逻辑代码分离,一经推出,广受开发者的喜 ...

  9. 第十一节:Bundles压缩合并js和css及原理分析

    一. 简介 1.背景:浏览器默认一次性请求的网络数是有上限的,如果你得js和css文件太多,就会导致浏览器需要多次加载,影响页面的加载速度, MVC中提供Bundles的方式压缩合并js和css,是M ...

  10. 《Java》第四周学习总结

    20175301 李锦然 一:本周学习内容 1:学习第五章视频 2:做实验 第五章主要讲的是子类与父类的关系,子类的继承与多态,final类super类等内容 仓库地址https://gitee.co ...