MongoDB
基础内容
Mr_慕白
此用户不懒
展开
-
MongoDB 集合(Collection)对应的物理文件
dbpath下是清一色的collection-n-***与index-n-***开头的物理文件,如何知道某一个集合与其对应与其对应的物理文件?db.collection_name.stats()返回的结果包含集合数据对应的物理文件db.collection_name.stats({indexDetails:true})返回的结果包含集合数据和索引对应的物理文件官方有db.collection.stats用法的详细信息:https://docs.mongodb.com/manual/referenc转载 2020-05-25 11:11:11 · 915 阅读 · 0 评论 -
mongodb数据存储原理
https://blog.csdn.net/ZH01234565/article/details/82886897转载 2020-05-25 10:08:54 · 729 阅读 · 0 评论 -
MongoDB单机集群搭建
一、单机副本集部署方案:单台物理机,一个主节点,一个副本节点,一个仲裁节点。二、部署步骤1、在mongodb目录下新建config目录(目录及位置可随意指定,在此按照config目录搭建),在config目录中新建主节点配置文件primary.conf (文件名可随意指定):[root@Thor config]# cat primary.conf port = 51077 #主节点端口号directoryperdb = true #设置每个数据库将被保存在一个单独的目录shardsvr =原创 2020-05-18 21:34:13 · 861 阅读 · 0 评论 -
MongoDB副本集与分片
一、MongoDB 副本集1.1、MongoDB复制在mongodb学习阶段,一般功德都是单台服务器,一个mongod服务进程。如果仅仅作为学习开发是可以的,但是如果用到生产环境,风险会很高,例如服务器崩溃、硬件出现问题,最坏的情况是磁盘或网络出问题可能会导致数损坏或数据不可访问。MongoDB复制是将数据同步在多个服务器的过程。复制提供了数据的冗余备份,并在多个服务器上存储数据副本,提高了数据的可用性, 并可以保证数据的安全性。1.2、副本集副本集是一组维护相同数据集的mongod实例。副本原创 2020-05-18 16:55:32 · 1753 阅读 · 0 评论 -
MongoDB执行计划分析详解
https://mongoing.com/eshu_explain1原创 2020-03-28 17:00:00 · 1330 阅读 · 0 评论 -
MongoDB GridFS
一、概述GridFS是基于mongodb存储引擎是实现的“分布式文件系统”,底层基于mongodb存储机制,和其他本地文件系统相比,它具备大数据存储的多个优点。GridFS适合存储超过16MB的大型文件,不过16M数据在当今互联网时代,已经不足为奇。我们可以使用GridFS构建大规模的“图片服务器”、“文档服务器”、“视频、音频”文件服务器,GridFS对于web应用,可以结合nginx插件“n...原创 2020-03-28 12:51:25 · 629 阅读 · 0 评论 -
MongoDB readConcern
MongoDB 可以通过 writeConcern 来定制写策略,3.2版本后又引入了 readConcern 来灵活的定制读策略。readConcern vs readPreferenceMongoDB 控制读策略,还有一个 readPreference 的设置,为了避免混淆,先简单说明下二者的区别。readPreference 主要控制客户端 Driver 从复制集的哪个节点读取数据...转载 2020-03-27 18:11:30 · 395 阅读 · 0 评论 -
MongoDB 文本搜索
一、引言MongoDB支持执行字符串内容的文本搜索的查询操作。 为了执行文本搜索,MongoDB使用文本索引和$text运算符。二、文本搜索与文本索引示例演示了如何在仅指定文本字段的情况下构建文本索引并将其用于查找咖啡店。使用以下文档创建一个集合存储:db.stores.insert( [ { _id: 1, name: "Java Hut", description: ...原创 2020-03-27 17:58:28 · 605 阅读 · 0 评论 -
MongoDB 删除文档
概述删除文档的主要方法db.collection.deleteOne() #New in version 3.2.db.collection.deleteMany() #New in version 3.2.db.collection.remove() 数据准备db.inventory.insertMany( [ { item: "journal", qty: 25, ...原创 2020-03-27 17:14:51 · 149 阅读 · 0 评论 -
MongoDB更新
概述更新方式db.collection.updateOne(< filter>, < update>, < options>)db.collection.updateMany(< filter>, < update>, < options>)db.collection.replaceOne(< filter>...原创 2020-03-27 17:00:12 · 398 阅读 · 0 评论 -
MongoDB WriteConncern
MongoDB支持的WriteConncern选项如下1、w: 数据写入到number个节点才向用客户端确认;{w: 0} 对客户端的写入不需要发送任何确认,适用于性能要求高,但不关注正确性的场景;{w: 1} 默认的writeConcern,数据写入到Primary就向客户端发送确认{w: “majority”} 数据写入到副本集大多数成员后向客户端发送确认,适用于对数据安全性要求比较...转载 2020-03-27 16:59:52 · 288 阅读 · 0 评论 -
MongoDB 插入
插入文档MongoDB文档的数据结构和JSON基本一样。所有存储在集合中的数据都是BSON格式,BSON是一种类json的一种二进制形式的存储格式,简称Binary JSON。insertdb.COLLECTION_NAME.insert(document) >db.col.insert({title: 'MongoDB 教程', description: 'MongoDB ...原创 2020-03-27 16:19:44 · 167 阅读 · 0 评论 -
mongo Shell 迭代游标
一、概述db.collection.find()方法返回一个游标。 要访问文档,您需要迭代游标。 但是,在mongo shell中,如果未使用var关键字将返回的光标分配给变量,则该光标将自动迭代多达20次,以打印结果中的前20个文档。以下示例描述了手动迭代游标以访问文档或使用迭代器索引的方法。二、手动迭代游标在mongo shell中,当使用var关键字将find()方法返回的游标分配给...原创 2020-03-27 16:09:15 · 214 阅读 · 0 评论 -
MongoDB Project(投影字段)
概述默认情况下,MongoDB中的查询返回匹配文档中的所有字段。 要限制MongoDB发送给应用程序的数据量,可以包含一个投影文档以指定或限制要返回的字段。本文提供使用mongo shell中的db.collection.find()方法进行投影的查询操作示例。 此页面上的示例使用库存收集。 要填充库存收集,请运行以下命令:db.inventory.insertMany( [ { ite...原创 2020-03-27 14:30:38 · 2633 阅读 · 0 评论 -
MongoDB 查询
1、查询所有数据数据准备db.inventory.insertMany([ { item: "journal", qty: 25, size: { h: 14, w: 21, uom: "cm" }, status: "A" }, { item: "notebook", qty: 50, size: { h: 8.5, w: 11, uom: "in" }, status: "A"...原创 2020-03-27 13:45:12 · 1425 阅读 · 0 评论 -
MongoDB常用操作符
$eq:匹配字段值等于指定值的文档$gt:匹配字段值大于指定值的文档$gte:匹配字段值大于等于指定值的文档$lt:匹配字段值小于指定值的文档$lte:匹配字段值小于等于指定值的文档$ne:匹配字段值不等于指定值的文档,包括没有这个字段的文档$in :匹配字段值等于指定数组中的任何值$nin :字段值不在指定数组或者不存在$or :文档至少满足其中的一个表达式$not :字段值不...原创 2020-03-27 13:34:20 · 825 阅读 · 0 评论 -
MongoDB 批量操作(bulkWrite)
一、概述mongodb 3.2 版中的新版本提供了db.collection.bulkWrite() 方法提供了执行批量插入、更新和删除操作的能力。mongodb 还支持批量插入 db.collection.insertMany()。1.1、语法db.collection.bulkWrite( [ <operation 1>, <operation 2>, ....原创 2020-03-26 21:01:53 · 14916 阅读 · 0 评论 -
MongoDB 仅在RAM中保存最近值的索引
MongoDB仅在RAM中保存最近值的索引。为了进行最快的处理,请确保索引完全适合RAM,以便系统避免从磁盘读取索引。要检查索引的大小,请使用db.collection.totalIndexSize()帮助器,该帮助器以字节为单位返回数据:> db.collection.totalIndexSize()4294976499上面的示例显示了几乎4.3 GB的索引大小。 为确保此索引...原创 2020-03-26 19:12:16 · 345 阅读 · 0 评论 -
MongoDB 索引与排序
一、单值索引排序如果在单个字段上是升序或降序索引,则对该字段的排序操作可以是任一方向。例如,在字段a上为收集记录创建一个升序索引:db.records.createIndex( { a: 1 } )该索引可以支持对以下内容的升序排序:db.records.find().sort( { a: 1 } )通过以相反的顺序遍历索引,索引还可以支持以下对a的降序排序:db.records...原创 2020-03-26 18:57:16 · 1296 阅读 · 0 评论 -
MongoDB 聚合
一、基本概念MongoDB中聚合(aggregate)主要用于处理数据(诸如统计平均值,求和等),并返回计算后的数据结果。有点类似sql语句中的 count(*)。1.1、aggregate() 方法MongoDB中聚合的方法使用aggregate()。语法:>db.COLLECTION_NAME.aggregate(AGGREGATE_OPERATION) 1.2、实例集...原创 2020-03-26 11:24:35 · 165 阅读 · 0 评论 -
MongoDB 索引
一、概述索引通常能够极大的提高查询的效率,如果没有索引,MongoDB在读取数据时必须扫描集合中的每个文件并选取那些符合查询条件的记录。这种扫描全集合的查询效率是非常低的,特别在处理大量的数据时,查询可以要花费几十秒甚至几分钟,这对网站的性能是非常致命的。在数据量大时,效率差别就很明显,对于包括一个没有索引的排序操作的查询,服务器必须在返回任何结果之前将所有的文档加载到内存中来进行排序。索...原创 2020-03-25 21:03:41 · 166 阅读 · 0 评论 -
MongoDB基本操作语句
1、连接./mongo ip:portuse admin db.auth("admin","password") 2、创建(切换)数据库MongoDB 创建数据库的语法格式如下:use DATABASE_NAME如果数据库不存在,则创建数据库,否则切换到指定数据库。#以下实例我们创建了数据库 testdbmongos> use testdb switched to ...原创 2020-03-25 19:39:06 · 1060 阅读 · 0 评论 -
MongoDB 概念解析
一、基本概念MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统。在高负载的情况下,添加更多的节点,可以保证服务器性能。MongoDB 旨在为WEB应用提供可扩展的高性能数据存储解决方案。MongoDB 将数据存储为一个文档,数据结构由键值(key->value)对组成。MongoDB 文档类似于 JSON 对象。字段值可以包含其他文档,数组及文档数组。...原创 2020-03-25 17:27:00 · 213 阅读 · 0 评论 -
NoSQL基本概念
一、NoSQL简介1.1、什么是NoSQL?NoSQL,指的是非关系型的数据库。NoSQL有时也称作Not Only SQL的缩写,是对不同于传统的关系型数据库的数据库管理系统的统称。NoSQL用于超大规模数据的存储。(例如谷歌或Facebook每天为他们的用户收集万亿比特的数据)。这些类型的数据存储不需要固定的模式,无需多余操作就可以横向扩展。1.2、为什么使用NoSQL ?今天我们可...原创 2020-03-25 16:12:37 · 1844 阅读 · 0 评论 -
mongodb常用命令
按条件查询db.human.find({“born_time”:{"$gte":ISODate(“2000-07-01T00:00:00Z”),"$lte": ISODate(“2019-10-09T08:38:38Z”)},“gender”:1} ).count()解释:查询出生日期大于2000-07-01T00:00:00Z的男孩的人数查询某个字段最小(最大)的记录常用于查找数据中时...原创 2019-11-27 10:22:24 · 134 阅读 · 0 评论