MongoDB文档数据库
一,引言
MongoDB 是一个开源的文档数据库,并是领先的NoSQL数据库。
MongoDB 是由C 语言编写。
通过本系列教程的讲解,使得学习者可以了解并掌握创建和部署高度可扩展和高性能的面向对象数据库MongoDB概念和理解。
该系列教程是专为软件专业人员学习MongoDB 数据库提供简单轻松的步骤。
通过学习希望学习者理解MongoDB 的概念和使用技巧。
通过系统连续性的学习可以使学习者在数据库领域的专业水平提升到一定的层次。
应该有一定的数据库基础,比如学习过SQLServer、MySQL或Oracle等。
由于要开发高性能的数据库,文本编辑器和执行程序等。
如果已经理解数据库的基本概念(RDBMS)将对理解本教程有帮助。
了解Json数据格式或掌握JavaScript编程基础。
二,简介
MongoDB 是一个跨平台的,面向文档的数据库,提供高性能,高可用性、高并发和可扩展性方便。 MongoDB 工作在收集和文件的概念。
数据库是一个物理容器集合。每个数据库都有自己的一套文件系统上的文件。一个单一的MongoDB 服务器通常有多个数据库。
集合是一组MongoDB的文档。它相当于一个RDBMS表。收集存在于一个单一的数据库。集合不执行模式。集合内的文档可以有不同的领域。通常情况下,一个集合中的所有文件是相同或相关的目的。
文档是一组 键 - 值 对。文件动态模式。动态模式是指,在相同集合中的文档不需要具有相同的字段或结构组的公共字段的集合的文档,可以容纳不同类型的数据。
显示RDBMS术语与MongoDB的关系
MongoDB 优点
任何关系型数据库,具有典型的架构设计,显示表和这些表之间的关系。然而在 MongoDB 中,没有什么关系的概念。
MongoDB 比 RDBMS 的优势
架构: MongoDB 是文档型数据库,其中一个集合保存不同的文件。字段的数量,内容和该文件的大小可以是从一个文件复制到另一个。
一个单一的对象是结构清晰
没有复杂的连接
深查询能力。 MongoDB 支持动态查询使用基于文档的查询语言,如SQL几乎一样强大的文件
调优
易于规模化:MongoDB 是易于扩展
不需要数据库对象的应用程序对象转换/映射
使用内部存储器存储(窗口)工作组,从而实现更快的数据存取
为什么要使用 MongoDB
JSON风格文件的形式,面向文档存储:数据存储
对任何属性可索引
复制和高可用性
自动分片
丰富的查询
快速就地更新
MongoDB 的专业技术支持
应该在哪里使用 MongoDB ?
大数据
内容管理和交付
移动和社交基础设施
用户数据管理
数据平台
三,MongoDB 安装
MongoDB 安装
步骤1:在 Windows上查看当前系统版本。
当确定了当前Windows系统版本号后,去MongoDB 官网下载对应的MongoDB 安装程序。 · 32位版本的MongoDB 数据库小于2GB,适合仅用于测试和评估目的。
步骤2:解压缩下载到本地的压缩文件到制定的磁盘位置。
步骤3:创建好制定的两个目标文件夹 data 和 log。
MongoDB 服务的启动与停止
步骤1:使用MongoDB 指令 mongod 完成MongoDB 的安装。
步骤2:在Windows终端输入指令 mongo.exe 测试数据库连接。
步骤3:也可以打开网页浏览器,输入 http://localhost:27017 查看
步骤4:停止服务需要在控制台进入到admin数据库,并输入指令。
以Windows服务方式进行安装
只需将:mongod.exe 指令扩展成如下即可。
查看Windows系统服务可以看到如下情况。
使用Windows服务方式进行安装的MongoDB ,我们可以使用指令开启或关闭系统服务。
开启MongoDB 服务。
关闭MongoDB 服务
以Windows服务方式进行安装
只需将步骤4:mongod.exe 指令扩展成如下即可。
四,MnogoDB的使用
MnogoDB数据类型
String : 这是最常用的数据类型来存储数据。在MongoDB中的字符串必须是有效的UTF-8。
Integer : 这种类型是用来存储一个数值。整数可以是32位或64位,这取决于您的服务器。
Boolean : 此类型用于存储一个布尔值 (true/ false) 。
Double : 这种类型是用来存储浮点值。
Min/ Max keys : 这种类型被用来对BSON元素的最低和最高值比较。
Arrays : 使用此类型的数组或列表或多个值存储到一个键。
Timestamp : 时间戳。这可以方便记录时的文件已被修改或添加。
Object : 此数据类型用于嵌入式的文件。
Null : 这种类型是用来存储一个Null值。
Symbol : 此数据类型用于字符串相同,但它通常是保留给特定符号类型的语言使用。
Date : 此数据类型用于存储当前日期或时间的UNIX时间格式。可以指定自己的日期和时间,日期和年,月,日到创建对象。
Object ID : 此数据类型用于存储文档的ID。
Binary data : 此数据类型用于存储二进制数据。
Code : 此数据类型用于存储到文档中的JavaScript代码。
Regular expression : 此数据类型用于存储正则表达式。
数据库的创建
使用 use 数据库名称 用于创建数据库。该命令将创建一个新的数据库,如果它不存在,否则将返回现有的数据库。
使用 db 用于查看当前所在数据库
使用 show dbs 查看当前所有数据库
MonogDB安装后默认有三个数据库:
admin数据库:用于记录MongoDB的用户及权限管理相关数据;
local数据库:用于记录MongoDB的日志信息等相关数据;
test数据库:测试数据库(由于没有任何数据库对象因此不显示)
使用 mongo 通过 Mongo Shell 登录连接到MongoDB在没有指明数据库名称的时候默认登录的是test数据库。
使用db.dropDatabase() 删除当前所在的数据库。
集合的创建
使用db.createCollection(name, options) 是用来创建集合。
name:String 要创建的集合名称
options:Document (可选)指定有关内存大小和索引选项
使用show collections 查看当前数据库中的所有集合。
索引的元信息存储在每个数据库的system.indexes集合中. 不能插入删除
使用db.集合名称.drop()用来删除一个集合。
插入文档
需要使用 MongoDB 的 insert() 方法。
操作1:创建一个数据库名称为 mydb
操作2:创建一个集合movie
操作3:插入一条数据,db.集合名称.insert({key1:val1,…..})
db.movie.insert({name:"当幸福来敲门",author:"张三",year:2002})
操作4:批量插入数据
-
var movies =[{name:"当幸福来敲门"},{name:"阿甘正传"},{name:"我是传奇"}]
-
db.movie.insert(movies)
查询文档
需要使用MongoDB 的 find() 方法以非结构化的方式显示所有的文件。
使用MongoDB 的 findOne() 返回集合中的第一条文档数据。
使用MongoDB 的 find() .pretty()方法以结构化的方式显示所有的文件。
操作4:创建一个集合infos用于存放姓名、年龄、性别、城市信息
操作5:查询集合所有文档对象
操作6:查看当前集合中的第一个文档数据
操作7:再次查看分析结果区别
操作8:查看居住在上海的用户信息
db.infos.find({city:"shanghai"})
操作9:查询不居住在上海的
db.infos.find({city:{$ne:"shanghai"}})
操作10:查看年龄大于15岁的用户信息
db.infos.find({age:{$gte:15}})
$lt 小于; $lte 小于等于 ; $gt 大于; $gte 大于等于; $ne 不等于
操作11:查看女性用户并且居住在上海的用户信息
db.infos.find({city:"shanghai",sex:"female"})
操作12:查看居住在上海或天津的用户信息
db.infos.find({$or:[{city:"shanghai"},{city:"tianjin"}]})
操作13:查看年龄大于15岁并且居住在广州或上海的用户信息
db.infos.find({age:{$gt:15},$or:[{city:"shanghai"},{city:"guangzhou"}]})
更新文档
使用db.collection.update( criteria, objNew, upsert, multi )更新现有的文档。
Criteria 更新操作的条件,类似于SQL语句中的where字句
objNew update的对象和一些更新的操作符(如$,$inc...)等,也可以理解为sql update查询内set后面的
Upsert 这个参数的意思是,如果不存在update的记录,是否插入objNew,true为插入,默认是false,不插入。
multi mongodb默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来多条记录全部更新。
操作14:将姓名为 Tom 的用户年龄更新为11岁
db.infos.update({name:"Tom"},{$set:{age:11}},false,true)
文档的删除
MongoDB的 remove(deletion criteria, justOne) 方法用于从集合中删除文档。remove() 方法接受两个参数。
deletion criteria :(可选)删除标准,根据文件将被删除。
justOne : (可选)如果设置为true或1,然后只删除一个文件。
操作15:删除用户姓名为Tom的用户信息数据
db.infos.remove({name:"Tom"})
操作16:删除infos集合的全部数据(类似truncate)
db.infos.remove({})
投影
mongodb 投影意思是只选择必要的数据而不是选择一个文件的数据的整体。如果一个文档有5个字段,需要显示只有3个,然后选择其中只有3个字段。
MongoDB 的find()方法,在MongoDB查询文档接受的第二个可选参数是要检索的字段列表。
在MongoDB中,当执行find()方法,那么它会显示一个文档所有字段。要限制这一点,需要设置的字段列表值1或0。 1用来显示字段而0是用来隐藏字段。
操作1:查询用户的姓名和所在城市(字段默认都是1)
db.infos.find({},{_id:0,age:0,sex:0})
限制记录
要限制 MongoDB 中的记录,需要使用 limit() 方法。 limit() 方法接受一个数字型的参数,这是要显示的文档数。如果不指定数量 limit() 方法的参数,它会显示从集合中的所有文件。
操作2:显示两个用户信息数据
db.infos.find().limit(2)
除了limit() 方法,还有一个方法skip() 也接受数字类型的参数,并使用跳过的文档数。默认值skip()方法是0
db.infos.find().limit(2).skip(2)
Skip() Limit() 实现文档数据分页显示
pageSize: 单页显示的文档个数,使用limit(pageSize)控制
skip是第(n-1)*pageSize,n代表页数
显示第page页数据 limit(pageSize) skip((page-1)*pageSize)
要在 MongoDB 中的文档进行排序,需要使用sort()法。 sort() 方法接受一个文档,其中包含的字段列表连同他们的排序顺序。要指定排序顺序1和-1。 1用于升序排列,而-1用于降序。
操作3:按照年龄降序排列用户信息
db.infos.find().sort({age:1})
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhgabiga
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
怎样阻止微信小程序自动打开
PHP中文网 06-13 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
photoshop蒙版画笔没反应怎么办
PHP中文网 06-24