Mongodb
介绍和分享mongodb技术。
lhdz_bj
大学毕业至今,一直深耕于数据库领域20余载,擅长数据库优化、数据库分析诊断、数据库规划设计等,曾任职多家知名大型企业,多次独立承担并成功上线关键大型项目。
展开
-
mongo shell(4)——写脚本
--注意:1)下列文档属于MongoDB Server下载包中包含的mongo shell。有关新MongoDB Shell的信息,mongosh,请参考mongosh文档。2)为了理解两个shell间的差别,请看mongo Shell和mongsh比较部分。您可以为mongo shell写JavaScript脚本以操作MongoDB中的数据或执行管理任务。该指南介绍通过mongo shell访问MongoDB的JavaScript编写。一.打开新连接从mongo shell或JavaScri原创 2020-10-20 10:24:14 · 679 阅读 · 0 评论 -
mongo shell(3)——帮助访问
--注意:1)下述文档属于下载MongoDB服务器包含的mongo shell。新MongoDB shell,mongosh,更多信息请参考mongosh文档。为了理解两个shell间的差别,请参考mongo shell和mongsh比较部分。除了MongDB手册中的文档,mongo shell在线帮助系统还提供了一些另外的信息。该文档提供了访问这些帮助信息的概览。一.命令行帮助为了查看启动mongo shell的选项和帮助,从命令行使用--help选项:$ mongo --help二.sh原创 2020-09-18 11:44:58 · 401 阅读 · 0 评论 -
mongo shell(2)——配置
--注意:1)下列文档属于下载MongoDB服务器所包含mongo sehll。了解新MongoDB shell,mongosh,请参考mongosh文档。为了了解两个shell间的差别,请参考mongo shell和mongosh比较部分。一.定制提示符通过设置mongo shell中的变量提示符,您可以修改提示符的内容。提示符变量能保存字符串和JavaScript代码。如果提示符包含一个返回字符串的函数,mongo可以在每个提示符中显示动态信息。您能在.mongorc.js文件中为提示符增加原创 2020-09-18 10:55:05 · 393 阅读 · 0 评论 -
mongo shell(1)——概述
mongo shell是MongoDB的一款交互式JavaScript接口。您能用mongo shell来查询和更新数据及执行管理操作。--注意:1)下述文档属于包含在MongoDB服务器下载中的mongo shell。有关新MongoDB shell——mongosh的信息,请参考mongosh文档。想了解两个shell间的差别,请参考后述mongo shell和mongosh比较部分。一.下载mongo shellmongo shell作为MongoDB服务器安装一部分被包含其中。如果您已安装服原创 2020-09-17 16:53:47 · 1206 阅读 · 0 评论 -
MongoDB 存储引擎:WiredTiger和In-Memory
本文源自:https://www.cnblogs.com/ljhdo/archive/2016/10/30/4947357.html存储引擎(Storage Engine)是MongoDB的核心组件,负责管理数据如何存储在硬盘(Disk)和内存(Memory)上。从MongoDB 3.2 版本开始,MongoDB 支持多数据存储引擎(Storage Engine),MongoDB支持的存储引擎有:WiredTiger,MMAPv1和In-Memory。从MongoDB 3.2 版本开始,WiredT转载 2020-09-11 15:55:57 · 357 阅读 · 1 评论 -
Mongodb存储特性与内部原理
本文源自:https://www.iteye.com/blog/shift-alt-ctrl-2255580一、存储引擎(Storage) mongodb 3.0默认存储引擎为MMAPV1,还有一个新引擎wiredTiger可选,或许可以提高一定的性能。 mongodb中有多个databases,每个database可以创建多个collections,collection是底层数据分区(partition)的单位,每个collection都有多个底层的数据文件组成。(参见下文data...转载 2020-09-11 14:43:31 · 651 阅读 · 0 评论 -
MongoDB 存储引擎Wiredtiger原理剖析
本文源自:https://www.cnblogs.com/olinux/p/6108203.html今天开始看MongoDB 3.2的文档,发现了这么两句话Support for Multiple Storage EnginesMongoDB supports multiple storage engines, such as:WiredTiger Storage Engine andMMAPv1 Storage Engine.可能阅读的中文书籍太Low了,第一次看到这两个存转载 2020-09-11 11:40:28 · 881 阅读 · 0 评论 -
MongoDB如何存储数据
本文源自:https://www.cnblogs.com/foxracle/p/3421893.html想要深入了解MongoDB如何存储数据之前,有一个概念必须清楚,那就是Memeory-Mapped Files。Memeory-Mapped Files下图展示了数据库是如何跟底层系统打交道的。内存映射文件是OS通过mmap在内存中创建一个数据文件,这样就把文件映射到一个虚拟内存的区域。 虚拟内存对于进程来说,是一个物理内存的抽象,寻址空间大小为2^64 操作系统通过mmap来把进程所转载 2020-09-11 10:56:19 · 1427 阅读 · 0 评论 -
MongoDB索引概述
MongoDB中,索引支持查询的执行。如果没有索引,MongoDB为了选出符合查询语句的文档,必须进行一个集合扫描,即扫描集合中的每个文档。如果存在适合查询的索引,MongoDB能用索引来限制其必须检查的文档数。索引是按照容易遍历形式存储一小部分集合数据的特殊数据结构。索引存储一个或多个特定域的值,并按照该域进行排序。索引项的有序支持高效等值匹配和基于范围的查询操作。此外,MongoDB能通过利用索引顺序返回有序结果。根本上,MongoDB的索引域其他数据库系统的索引类似。MongoDB在集合级别定义原创 2020-09-10 18:06:41 · 622 阅读 · 0 评论 -
MongoDB架构指导(MongoDB Architecture Guide)
本文译自《MongoDB_Architecture_Guide.pdf》,因无法上传该E文,需要的同学可以自行查找。一.引言“MongoDB并非在实验室设计。我们通过自己建造大规模、高可用、健壮系统的经验构建了MongoDB。我们不是从零开始的,我们实际上是真的想发现问题并解决它。因此,我对MongoDB看法是,如果你采用Mysql,将关系模型改为基于文档的模型,你将会得到很多特性:内嵌文档用于提高速度,可管理性,动态模式的敏捷开发,因为连接并不那么重要,所以,易于水平扩展。关系库中,很多东西很好用:原创 2020-09-07 11:22:04 · 645 阅读 · 3 评论 -
MongoDB内部机制
多数情况下,MongoDB用户将其看做一个黑盒子。当试图理解性能特征或想对其系统有更深理解时,对MongoDB内部了解一些还是有帮助的。1.BSONMongoDB文档是一个抽象的概念——文档的具体表示方法取决于所用的驱动或语言。因为文档广泛用于MongoDB通信,因此,还需要有一个被MongoDB生态系统中所有驱动、工具和进程共享的文档表示方法。该表示方法称为二进制JSON(BSON)。BSON是一个能用字节串表示任何MongoDB文档的轻量级二进制格式。数据库理解BSON,BSON是文档按照其存储到原创 2020-08-28 17:56:47 · 317 阅读 · 0 评论 -
MongoDB性能最佳实践(Performance Best Practices for MongoDB)
一.引言MongoDB是一款为各种现代应用设计的高性能、可扩展数据库。各种规模的机构用它来支撑低延迟、高吞吐、连续高可用的在线、可操作、关键的应用系统。该指导概述了涉及硬件、应用模式、模式设计、索引、磁盘I/O,亚马逊EC2和基准设计等多个关键维度的MongDB系统中,大幅提升性能所应考量的因素,但其并不非常详尽。按照该指导的建议,将会减少遭遇常见性能问题的可能性,但其并不保证应用具备良好的性能。该指导目标在于指导用户自己管理一切。为MongoDB数据库作为服务的用户提供了专门的指南——MongoD翻译 2020-08-25 18:35:26 · 805 阅读 · 0 评论 -
Mongdb优化
1.索引1)基础索引--为集合colt1的x列创建升序基础索引# cd /usr/local/mongodb4.2.2/bin# ./mongo -uroot -p> use db_test> db.colt1.find();> db.colt1.getIndexes();> db.colt1.ensureIndex({x:1});> db.colt...原创 2020-02-28 16:46:18 · 289 阅读 · 0 评论 -
Mongodb访问控制
1.限定访问的服务器特定IP--通过启动mongodb时指定参数bind_ip# ./mongod --bind_ip=10.10.10.2--通过配置文件指定bind_ip# vi /etc/mongodb.cnfbind_ip=10.10.10.2--通过配置文件指定多个bind_ip# vi /etc/mongodb.cnfbind_ip=localhost,10.10.10...原创 2020-02-19 12:13:24 · 8723 阅读 · 0 评论 -
mongodb管理命令
1.复制集合(collection)1)从远端mongodb复制# mongo 10.10.10.2:27017/db_test -u "test" -p "test"> db.tab1.find();> db.tab1.getIndexes();# mongo> use db_test> db.tab1.find();> db.tab1.getIn...原创 2020-02-15 16:29:30 · 534 阅读 · 0 评论 -
mongodb管理工具
1.mongoexport1)获取帮助信息# mongoexport --help2)语法# mongoexport -option1 -option2 ... -optionn--注:--option: 1)-v [--verbose=<level>]:输出更详细的日志信息. 2)-h [--host=ip]:指定mongodb主机IP. 3)-u [--...原创 2020-02-10 18:06:21 · 363 阅读 · 0 评论 -
Mongodb高级特性
1.capped collection(固定大小集合):创建时指定集合大小,空间用完后,新加对象会替代集合中最旧的对象();更新超出集合大小将失败;通过drop()方法删除集合所有行.1)创建--创建capped collection:col1,指定该集合为capped,大小为2m,最多存储100个文档,并通过指定"autoIndexId"参数在"_id"字段上自动创建索引,该参数创建普通集合...原创 2020-02-07 22:09:24 · 661 阅读 · 0 评论 -
Mongodb高级更新
1.数据更新命令1.1 update1)语法 db.collection.update(criteria,objnew,upsert,multi) --注: 1)criteria:查询条件; 2)objnew:更新对象和更新操作符; 3)upsert:如果不存在更新文档,是否要插入新文档,true为插入,默认为false不插入; 4)multi:默认为false,只更新...原创 2020-01-24 16:37:50 · 461 阅读 · 0 评论 -
Mongodb高级查询
1.查询操作符1)条件操作符--查找年龄大于13的学生db.student.find({age:{$gt:13}});--查找年龄小于15的学生db.student.find({age:{$lt:15}});--查找年龄大于等于13的学生db.student.find({age:{$gte:13}});--查找年龄小于等于15的学生db.student.find({age:{$l...原创 2020-01-21 18:24:16 · 562 阅读 · 0 评论 -
mongodb基础入门
一.体系架构1.整体架构:一个运行着的mongodb为一个mongodb服务器(server),一个服务器由一个实例和多个数据库组成,实例由一个后台进程(多个线程)和一块物理内存组成,而数据库则由数据文件和日志文件等物理文件组成.2.逻辑架构:与关系库不同,mongodb的逻辑上为一种层次结构,主要包括文档(document),集合(collection)和数据库(database)三个层...原创 2020-01-20 15:16:11 · 486 阅读 · 0 评论 -
MongoDB数据库详细配置
本文源自:https://www.jianshu.com/p/cc3b14e3621cMongoDB数据库详细配置说明(文章来源于Internet)启动MongoDB有2种方式直接指定配置参数 指定配置文件。由配置文件启动方式如下:mongod --config /your_path/mongodb.conf配置如下:verbose:日志信息冗余。默认fals...转载 2020-01-19 17:39:51 · 652 阅读 · 0 评论 -
mongodb复制集(replica sets)+分片(sharding)环境搭建
1.创建数据目录--server a:# mkdir -p /data/shard1_1# mkdir -p /data/shard2_1# mkdir -p /data/config--server b:# mkdir -p /data/shard1_2# mkdir -p /data/shard2_2# mkdir -p /data/config--server c:#...原创 2020-01-12 10:44:56 · 367 阅读 · 0 评论 -
浅谈MongoDB基础及架构
1.简述MongDB是一个强大、灵活而可扩展的数据存储系统,其将强大的可扩展特性与关系库最有用的特性进行了整合,像:次级索引,范围查询和排序等特性。而MongDB也内建了类似MapReduce汇聚和地理空间索引等有用特性。历经艰苦的努力,MongDB也拥有了易操作和用户友好等特性,同时,其还具备开发友好的模型、管理友好的配置选项及用起来感觉轻松自然的API和数据库shell。MongDB尽力...原创 2019-09-18 16:07:37 · 358 阅读 · 0 评论 -
mongodb分片(sharding)搭建、应用及管理
1.启动shard server# mkdir -p /data/shard/s0# mkdir -p /data/shard/s1# mkdir -p /data/shard/log# cd /usr/local/mongodb/bin# ./mongod --shardsvr --port 20000 --dbpath /data/shard/s0 --fork --logpath...原创 2020-01-10 11:21:57 · 512 阅读 · 1 评论 -
mongodb复制集(replica set)搭建及管理
1.创建三个节点数据存储目录# mkdir -p /data/data/r0# mkdir -p /data/data/r1# mkdir -p /data/data/r22.创建三个节点日志存储目录# mkdir -p /data/log/3.创建和配置三个节点复制集key文件# mkdir -p /data/key# echo "this is rs1 super secr...原创 2019-12-31 15:35:44 · 652 阅读 · 0 评论