随笔分类 -  MongoDB

MongoDB学习笔记
摘要:前两篇文章分别介绍了MMAPv1和WiredTiger,这两个存储引擎都是会将数据持久化存储到硬盘的,除此之外,MongoDB也有只将数据存储在内存的存储引擎,那就是In-Memory。 In-Memory存储引擎将数据库数据都存储在内存中,只将少量的元数据和诊断日志、临时数据存储到硬盘文件中,避免 阅读全文
posted @ 2018-02-22 14:46 疯一样的狼人 阅读(501) 评论(0) 推荐(0) 编辑
摘要:上一篇博文介绍了MongoDB的MMAPv1存储引擎,本文接着介绍MongoDB另一个存储引擎——WiredTiger,WiredTiger是在MongoDB3.0版本引入的,并且在MongoDB3.2版本开始成为MongoDB默认的存储引擎。相比较MMAPv1,WiredTiger功能更强大,而且 阅读全文
posted @ 2018-02-22 11:29 疯一样的狼人 阅读(1239) 评论(0) 推荐(0) 编辑
摘要:3.0版本以前,MongoDB只有一个存储引擎——MMAP,MongoDB3.0引进了一个新的存储引擎——WiredTiger,同时对原有的MMAP引擎进行改进,产生MMAPv1存储引擎,并将其设置为MongoD3.0的默认存储引擎。然而MMAP引擎的一些弊端在MMAPv1引擎依旧存在,3.2版本开 阅读全文
posted @ 2018-02-08 15:18 疯一样的狼人 阅读(1049) 评论(0) 推荐(0) 编辑
摘要:一、GridFS是什么 & 为什么需要它 我们知道目前MongoDB的BSON文件最大只能是16M,也就是说单个文档最多只能存储16M的数据,那么如果需要MongoDB存储超过16M的大文件该怎么办呢?这就需要通过MongoDB的GridFS规范来实现了。 GridFS并不是MongoDB自身的特性 阅读全文
posted @ 2018-02-02 17:07 疯一样的狼人 阅读(753) 评论(0) 推荐(0) 编辑
摘要:虽说MongoDB是非关系型数据库,但由于大部分情况下数据之间是存在关系的,所以MongoDB也需要一些方式来表达数据之间的关系。MongoDB表达数据关系的方式有两种:文档嵌套和数据库引用。 一、文档嵌套 众所周知,MongoDB可以在一个文档中嵌套多个子文档,这在解决一对一和一对多的数据关系中是 阅读全文
posted @ 2018-02-01 16:17 疯一样的狼人 阅读(501) 评论(0) 推荐(0) 编辑
摘要:MongoDB数据类型和对应的代码如下: MongoDB可以根据字段类型进行文档查询: 可以看到,friend集合的文档中,age字段有32位int类型的,也有double类型的。如果需要把double类型的全部改为32位int类型的话,可以这样: 可以看到,这样已经把所有double类型的age字 阅读全文
posted @ 2018-01-31 16:09 疯一样的狼人 阅读(2822) 评论(0) 推荐(0) 编辑
摘要:MongoDB的PHP驱动提供了一些核心类来操作MongoDB,总的来说MongoDB命令行中有的功能,它都可以实现,而且参数的格式基本相似。PHP7以前的版本和PHP7之后的版本对MongoDB的操作有所不同,本文主要以PHP7以前版本为例讲解PHP对MongoDB的各种操作,最后再简单说明一下P 阅读全文
posted @ 2018-01-25 18:16 疯一样的狼人 阅读(25930) 评论(1) 推荐(0) 编辑
摘要:说明:本文所有操作均在win7下的MongoDB3.4.4版本中进行。 一、备份与恢复 1. 备份: mongodump -h IP --port 端口 -u 用户名 -p 密码 -d数据库 -o 文件路径 (将使用某个用户账号将某个mongodb服务器上的某个数据库备份到某个路径下) 如果无需指定 阅读全文
posted @ 2017-06-06 22:27 疯一样的狼人 阅读(474) 评论(0) 推荐(0) 编辑
摘要:创建用户账号: (roles参数指定了用户的角色以及这个账号授权的数据库,在同一个数据库中不能同时创建两个用户名相同的账号) Mongodb内置的用户角色: 1. 数据库用户角色:read、readWrite 2. 数据库管理角色:dbAdmin、dbOwner、userAdmin 3. 集群管理角 阅读全文
posted @ 2017-05-24 15:35 疯一样的狼人 阅读(919) 评论(0) 推荐(0) 编辑
摘要:1. count:返回集合中文档的数量。 db.friend.count() db.friend.count({'age':24}) 增加查询条件会使count查询变慢。 2. distinct:找出给定键的所有不同的值。 使用时必须指定集合和键: db.runCommand({'distinct' 阅读全文
posted @ 2017-05-18 22:15 疯一样的狼人 阅读(16687) 评论(0) 推荐(2) 编辑
摘要:一、MongoDB索引的分类与创建 1. 单键索引: (1)创建普通键索引: db.people.ensureIndex({‘username’:1})(1表示升序,-1表示降序) MongoDB有一个特殊的单键索引,那就是_id键上的索引,它是MongoDB默认自动创建的索引。 (2)创建内嵌文档 阅读全文
posted @ 2017-05-18 13:14 疯一样的狼人 阅读(993) 评论(0) 推荐(0) 编辑
摘要:一、插入 MongoDB的插入操作很简单,使用insert方法,这里演示从创建数据库、创建集合到插入文档、查询文档。 集合创建方法参数说明: size:集合最大空间 max:集合最多文档数量 (超出size和max限制都会删除最早的记录) 二、删除 MongoDB删除操作也很简单,使用remove方 阅读全文
posted @ 2017-05-07 17:25 疯一样的狼人 阅读(6138) 评论(0) 推荐(1) 编辑
摘要:我们知道,MongoDB没有像SQL一样有自动增长的功能,如果需要实现ObjectId自动增长功能,我们可以通过编程的方式来实现。步骤如下: 1. 创建一个集合用于存储自动增长的id的当前值,这里集合名称为'counters': db.createCollection("counters") 2. 阅读全文
posted @ 2016-03-20 16:58 疯一样的狼人 阅读(596) 评论(0) 推荐(0) 编辑
摘要:MongoDB固定集合(Capped Collections)是性能出色且有着固定大小的集合,对于大小固定,我们可以想象其就像一个环形队列,当集合空间用完后,再插入的元素就会覆盖最初始的头部的元素! 1. 创建固定集合: 一定要使用'size'参数指定集合大小: db.createCollectio 阅读全文
posted @ 2016-03-20 16:27 疯一样的狼人 阅读(371) 评论(0) 推荐(0) 编辑
摘要:1. MongoDB中的ObjectId是一个12字节BSON 类型数据,组成格式如下: (1)前4个字节表示时间戳 (2)接下来的3个字节是机器标识码 (3)紧接的两个字节由进程id组成(PID) (4)最后三个字节是随机数 2. MongoDB采用ObjectId,而不是其他比较常规的做法(比如 阅读全文
posted @ 2016-03-20 14:06 疯一样的狼人 阅读(380) 评论(0) 推荐(0) 编辑
摘要:1. mongostat:间隔固定时间获取mongodb的当前运行状态,并输出。 使用示例: D:\Program_Files\MongoDB\bin\mongostat(根据MongoDB的安装目录而定) 2. mongotop:跟踪MongoDB的实例,查看那些大量的时间花费在读取和写入数据。 阅读全文
posted @ 2016-03-20 13:34 疯一样的狼人 阅读(216) 评论(0) 推荐(0) 编辑
摘要:1. 为什么使用分片 当MongoDB存储海量的数据时,一台机器可能不足以存储数据也不足以提供可接受的读写吞吐量。这时,我们就可以通过在多台机器上分割数据,使得数据库系统能存储和处理更多的数据。 2. MongoDB分片集群三个主要组件: (1)Shard:用于存储实际的数据块,实际生产环境中一个s 阅读全文
posted @ 2016-03-20 11:32 疯一样的狼人 阅读(208) 评论(0) 推荐(0) 编辑
摘要:1. 什么是复制 (1)MongoDB复制是将数据同步在多个服务器的过程。 (2)复制提供了数据的冗余备份,并在多个服务器上存储数据副本,提高了数据的可用性, 并可以保证数据的安全性。 (3)复制还允许您从硬件故障和服务中断中恢复数据。 (4)分布式读取数据 2. MongoDB复制原理 (1)mo 阅读全文
posted @ 2016-03-20 11:18 疯一样的狼人 阅读(265) 评论(0) 推荐(0) 编辑
摘要:1. 查看所有数据库: show dbs 或: show databases 注意: 该命令不会显示新创建的空数据库,若想显示需要向空数据库插入一些数据。 MongoDB中默认的数据库为test,若果没有创建新的数据库,集合将存放于test中。 2. 创建/选择数据库: use blog:切换当前数 阅读全文
posted @ 2016-03-20 10:27 疯一样的狼人 阅读(373) 评论(0) 推荐(0) 编辑
摘要:1. 下载并安装MongoDB,我的安装路径:D:\Program_Files\MongoDB 2. 创建数据库目录,我的目录:D:\mongodb\data\db 3. 命令行下运行MongoDB服务器: 在命令行窗口输入命令:D:\Program_Files\MongoDB\bin\mongod 阅读全文
posted @ 2016-03-20 10:01 疯一样的狼人 阅读(304) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示