mongodb是一个基于文档的强大、灵活、易于扩展的通用型数据库。是基于分布式文件存储的数据库。其由 C++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。

mongodb也是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。

目录

一、MongoDB简介

1.1 简介

1.2 基本概念

二、MongoDB常规操作

2.1 数据库操作

2.2 集合操作

2.3 数据类型

2.4 文档操作


一、MongoDB简介

1.1 简介

mongodb是一个基于文档的强大、灵活、易于扩展的通用型数据库。是基于分布式文件存储的数据库。其由 C++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。其主要特点如下:

(1)其使用文档来替代关系型数据库表的结构,每条数据不在要求其有无和一致性的类型。

(2)每个文档可以具备丰富的层次结构,而不是并列的属性数据。当然对于检索等情况下也不是很建议这样处理。

(3)使用横向扩展技术,面向文档的数据模型更易扩展。

(4)具备更加丰富、独特、易用的检索功能。

(5)基于内存的储存检索,性能更佳。

1.2 基本概念

数据库:

数据库和传统的关系型数据库差不多的概念,每个数据库含有多个集合,每个数据库最后会作为文件储存至服务器中,另外还有一些特殊的数据库进行了保留如下:

admin:类似于root数据库,如果将用户添加至admin数据库将获取所有数据库的权限,其中一些比如查找所有数据库、关闭服务器的服务端命令只能从这里运行。

local:存储当前服务器所有本地集合的数据库,永远不可以复制。

config:主要是存储分片等信息

集合(table):

相当于表结构,一个数据库下有多个集合。

但是与传统关系型数据库不同,关系型数据库譬如mysql,postgresql等都需要比较确切的表结构,但是对于MongoDB的集合,可以存储不同结构的数据,eg:

{"name":"张三","age":"15"}

{"name":"李四","age":16,"height":180}

{"title":"我的世界"}

对于上述数据都可以存储在一个集合里面,在该集合的上述三条数据,不仅仅是字段不同,连同一个字段age的数据类型都不同,这边是集合的动态扩展。虽然MongoDB支持该方式,但是作为开发还是建议将不同类型的数据分开到不同的集合之中更为稳妥:

首先,将各种类型的数据放到同一个数据库之中,后续进行管理查看的时候需要进行针对性的筛选很费劲;

其次,对于同名但是不同含义的字段检索存在歧义;

最后补充,在进行数据检索时,包括索引创建等,对于同一类数据进行操作更为快捷,其体现在索引创建上,进行检索时查找数据量级上等。

文档 (行数据)

文档则相当于传统关系型数据的行数据,对于集合中的介绍,我们基本也了解到了集合的结构并非是非常固定的结构,但是对于其中还是要注意,文档不能出现相同名称的属性。

主键

主键是MongoDB比较特殊的存在,一个mysql表可以不设置主键,但是对于MongoDB是一定会有一个唯一性的Id,你可以使用一个确定的Id值,也可以不进行设置,由MongoDB生成一个唯一的ObjectId作为Id。ObjectId作为的Id可以适配分布式的情况,具体详见官网介绍:ObjectId — MongoDB Manual

二、MongoDB常规操作

2.1 数据库操作

2.1.1 查看

MongoDB对于数据库的查看

#推荐
show dbs
#不推荐
show databases

2.1.2 创建

对于数据库的创建,MongoDB并未提供一个独立的接口,而是使用类似于mysql这种use <database> 的语法,当使用的数据库不存在时则进行创建

# 切入 test 数据库,此时触发 test 数据库的创建工作
use test
db.myCollection.insertOne( { x: 1 } );

【注】 当只是use <new database> 时,没有进行集合、文档操作,此时不会创建该数据库,只有真正操作集合后才会创建。

             2.1.3 删除

对于数据库的删除,只需要简单的进入到该数据库执行db.dropDatabase()方法即可

# 删除代码执行前最好是进入改数据库后执行  use <database>
db.dropDatabase()

2.2 集合操作

2.2.1 集合创建

db.createCollection(name, options)

参数说明:

  • name: 要创建的集合名称
  • options: (可选)参数的集合

options 可以是如下参数:

参数名 类型 描述
capped 布尔 (可选)如果为 true,则创建最大容量的集合,如果超出容量capped集合将自动的覆盖旧数据,当设置为true时,则需要指定size参数大小进行设置
autoIndexId 布尔 (可选)如为 true,自动在 _id 字段创建索引。默认为 false。【3.4版本开始移除该参数,详见[SERVER-19067] Warn at creation that autoIndexId:false is deprecated - MongoDB Jira】
size 数值 (可选)为固定集合指定一个最大值,即字节数。
如果 capped 为 true,也需要指定该字段。
max 数值 (可选)指定固定集合中包含文档的最大数量。

[注]在插入文档时,MongoDB 首先检查固定集合的 size 字段,然后检查 max 字段。

示例:

1. 直接创建一个集合:

        db.createCollection("<collectionsName>")

2. 创建一个带有options操作的集合:

 db.createCollection("mycol", { capped : true, size : 6142800, max : 10000 } )

3.也可以直接插入数据,这样也会自动创建一个集合

db.tutorialspoint.insert({"name" : "tutorialspoint"})

2.2.2 删除集合

集合删除很简单,直接db.<collectionName>.drop()

db.tutorialspoint.drop()

2.3 数据类型

MongoDB supports many datatypes. Some of them are −

  • String − This is the most commonly used datatype to store the data. String in MongoDB must be UTF-8 valid.

  • Integer − This type is used to store a numerical value. Integer can be 32 bit or 64 bit depending upon your server.

  • Boolean − This type is used to store a boolean (true/ false) value.

  • Double − This type is used to store floating point values.

  • Min/ Max keys − This type is used to compare a value against the lowest and highest BSON elements.

  • Arrays − This type is used to store arrays or list or multiple values into one key.

  • Timestamp − ctimestamp. This can be handy for recording when a document has been modified or added.

  • Object − This datatype is used for embedded documents.

  • Null − This type is used to store a Null value.

  • Symbol − This datatype is used identically to a string; however, it's generally reserved for languages that use a specific symbol type.

  • Date − This datatype is used to store the current date or time in UNIX time format. You can specify your own date time by creating object of Date and passing day, month, year into it.

  • Object ID − This datatype is used to store the document’s ID.

  • Binary data − This datatype is used to store binary data.

  • Code − This datatype is used to store JavaScript code into the document.

  • Regular expression − This datatype is used to store regular expression.

2.4 文档操作

2.4.1 新增

1. 使用insert(documents)方法

#单个插入
db.mycol.insert({"name":"张三","age":18})#多个插入
db.mycol.insert([{"name":"李四","age":18},{"name":"王五"}])

2.  insertOne(document)方法

db.mycol.insertOne({"name":"张三One","age":18})

3. insertMany(documents)方法

 db.mycol.insertMany([{"name":"李四M","age":18},{"name":"王五M"}])

2.4.2 删除

文档删除主要是使用drop方法,但是要注意对于capped collection无法进行删除操作,以下则是进行具体操作的示例,这里先造点数据

db.test.insert([{"name":"李四","age":18},{"name":"王五"},{"name":"赵六","age":18},{"name":"Tom","age":19},{"name":"Anna","age":20}])

示例:

1. 简单进行条件删除:

db.test.remove({'name':'王五'})

2. 在version2.6 及其后续版本提供了更为复杂的删除方案:

        db.collection.remove(<query>,{justOne: <boolean>,writeConcern: <document>,collation: <document>,let: <document> // Added in MongoDB 5.0})

参数

类型

描述

query

document

使用query operators指定删除条件。要删除集合中的所有文档,请传递空文档({})。

justOne

boolean

可选的。要将删除限制为仅一个文档,请设置为true。省略使用false的默认 value 并删除符合删除条件的所有文档。

writeConcern

document

可选的。表示写关注的文件。省略使用默认写入问题。见写关注。 如果在事务中运行,请不要为操作明确设置写关注点。要对事务使用写关注,请参见 事务和写关注。

collation

document

可选的。 指定要用于操作的排序规则。 排序规则允许用户为 string 比较指定 language-specific 规则,例如字母和重音标记的规则。 排序规则选项具有以下语法: collation:{ locale:<string>, caseLevel:<boolean>, caseFirst:<string>, strength:<int>, numericOrdering:<boolean>, alternate:<string>, maxVariable:<string>, backwards :<boolean> } 指定排序规则时,locale字段是必填字段;所有其他校对字段都是可选的。有关字段的说明,请参阅整理文件。 如果未指定排序规则但集合具有默认排序规则(请参阅db.createCollection()),则操作将使用为集合指定的排序规则。 如果没有为集合或操作指定排序规则,MongoDB 使用先前版本中用于 string 比较的简单二进制比较。 您无法为操作指定多个排序规则。对于 example,您不能为每个字段指定不同的排序规则,或者如果使用排序执行查找,则不能对查找使用一个排序规则,而对排序使用另一个排序规则。 version 3.4 中的新内容。

对于mongodb的基本操作基本讲解完毕,那么下一章节开始介绍如何去查询内容。

上一章:MongoDB安装(CentOS7)_童懵的博客-CSDN博客

下一章:三、mongdb 查询

参考文献:

MongoDB Documentation

MongoDB Tutorial

二、MongoDB简介及基本操作相关推荐

  1. Mongodb简介及基本操作

    一.简介 MongoDB是一款强大.灵活.且易于扩展的通用型数据库 MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统. 在高负载的情况下,添加更多的节点,可以保证服务器性 ...

  2. 分布式数据库NoSQL(二)——MongoDB 数据库基本操作

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

  3. Mongodb 笔记01 MongoDB 简介、MongoDB基础知识、启动和停止MongoDB

    MongoDB 简介 1. 易于使用:没有固定的模式,根据需要添加和删除字段更加容易 2. 易于扩展:MongoDB的设计采用横向扩展.面向文档的数据模型使它能很容易的再多台服务器之间进行分割.自动处 ...

  4. 计算机基础及excel,S102-计算机基础(06)-EXCEL简介及基本操作

    S102-计算机基础(06)-EXCEL简介及基本操作 (53页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 19.90 积分 Excel电子表格一.Ex ...

  5. mongodb介绍及基本操作

    一.Mongodb简介 1-功能特性 MongoDB 的设计目标是高性能.可扩展.易部署.易使用,存储数据非常方便. (1)面向集合存储,容易存储对象类型的数据. (2)模式自由,采用无模式结构存储. ...

  6. MongoDB简介及常用增删改查命令

    MongoDB 简介 NoSQL 的概念:指的是非关系型数据库. NOT only sql 的缩写.特别适用于大规模 的数据存储.例如:谷歌或者facebook 每天为用户收集亿万级别的数据,这些数据 ...

  7. 计算机excle基础操作,计算机基础-EXCEL简介及基本操作.ppt

    <计算机基础-EXCEL简介及基本操作.ppt>由会员分享,可在线阅读,更多相关<计算机基础-EXCEL简介及基本操作.ppt(53页珍藏版)>请在装配图网上搜索. 1.Exc ...

  8. 浅显易懂 SQLite3 笔记(01)— SQLite3简介及基本操作

    文章目录 前言 一.SQLite数据库 1.什么是SQLite? 2.为什么要用SQLite? 3.如何使用SQLite? 二.SQLite语言及基本操作 1.SQLite命令 2.SQLite类型 ...

  9. mongodb简介、安装、启停(转并学习)

    mongodb简介.安装.启停(转并学习)MongoDB是一种强大.灵活以及可扩展的数据存在方式,一种文档数据库,非关系型数据库.1.安装使用安装非常简单,管理简单.2.数据模型mongodb的存在以 ...

最新文章

  1. 利用bind搭建dns
  2. [24]CSS3 弹性伸缩布局(上)
  3. 在linux怎样运行java,怎么在linux运行java
  4. PHP7.2的安装与配置(win7)
  5. java 汉字拼音排序_Java汉字排序(2)按拼音排序
  6. springboot结合mybatis连接数据库
  7. python workflow_用 Python 写 Alfred3 workflow 插件,一个最小示例
  8. php居民小区物业管理系统
  9. s5p4418安卓系统适配fpc8563芯片遇到的问题及解决
  10. Ubuntu安装ssh服务详细过程
  11. XEQ玻尿酸敏感肌可以用吗?效果怎么样?
  12. unity 2D动画控制一些小技巧
  13. 即时通讯系统的消息到达率如何保障
  14. Oracle常用单词表
  15. 在github上写自己的博客
  16. 用户故事与敏捷方法—课后习题解析
  17. 以前学习C语言资料2
  18. PCG(preconditioned conjugate gradient)
  19. 4月,不要跳槽...
  20. 接近开关原理分类及选型方法

热门文章

  1. skywalkingUI界面说明
  2. [转] 优秀的 如何打造一支优秀的技术团队?
  3. 实在智能RPA受邀出席2023年东莞市数字赋能峰会,聚力数智制造
  4. 电脑经常黑屏死机是什么原因?
  5. Windows隐藏应用程序界面
  6. 程序员最想拥有的编程语言,Python 排第一!
  7. jmeter安全证书_jmeter制造安全证书
  8. Flutter布局-wrap
  9. 关于阅读技术类图书的思考
  10. 华为云大数据解决方案赋能金融行业发展,打造5G智慧银行营业厅