MongoDB
木西爷
这个作者很懒,什么都没留下…
展开
-
MongoDB Aggregation(聚合)
聚合操作处理数据记录并返回计算结果。将来自多个文档的操作组值聚合在一起,并可以对分组的数据执行各种操作以返回单个结果。MongoDB提供了三种执行聚合的方法:聚合管道、map-reduce函数和单一用途的聚合方法。一、聚合管道聚合管道是基于数据处理管道概念建模的数据聚合框架。文档进入一个多阶段的管道,该管道将文档转换为聚合的结果。例如:例子:db.orders.aggregate...原创 2020-02-05 18:29:29 · 5482 阅读 · 0 评论 -
MongoDB 索引(二)
4.索引交集MongoDB可以使用多个索引的交集来实现查询。一般情况下,每个指标的交集包含两个指标;但是,MongoDB可以使用多个/嵌套的索引交叉点来解析查询。要说明索引交集,请考虑具有以下索引的集合订单:{ qty: 1 }{ item: 1 }MongoDB可以使用两个索引的交集来支持以下查询:db.orders.find( { item: "abc123", qty...原创 2020-03-03 17:23:51 · 306 阅读 · 0 评论 -
MongoDB 索引(一)
索引支持在MongoDB中高效执行查询。如果没有索引,MongoDB必须执行集合扫描,即扫描集合中的每个文档,以选择那些匹配查询语句的文档。如果查询存在适当的索引,MongoDB可以使用该索引来限制它必须检查的文档数量。索引是一种特殊的数据结构[1],它以一种易于遍历的形式存储集合数据集的一小部分。索引存储特定字段或一组字段的值,按字段的值排序。索引项的排序支持高效的相等匹配和基于范围的查询操...原创 2020-03-03 16:17:43 · 821 阅读 · 0 评论 -
MongoDB 事务
在MongoDB中,对单个文档的操作是原子性的。因为您可以使用嵌入的文档和数组来捕获单个文档结构中的数据之间的关系,而不是跨多个文档和集合进行规范化,所以这种单文档原子性消除了对于需要对多个文档(在单个或多个集合中)进行原子性读写的情况,MongoDB支持多文档事务。使用分布式事务,可以跨多个操作、集合、数据库、文档和碎片使用事务。许多实际用例对多文档事务的需求。1.事务API以下示例突出...原创 2020-02-07 18:31:30 · 1684 阅读 · 0 评论 -
MongoDB 数据模型
一、数据建模的介绍数据建模中的关键挑战是平衡应用程序的需求、数据库引擎的性能特征和数据检索模式。在设计数据模型时,一定要考虑数据的应用使用(即数据的查询、更新和处理)以及数据本身的固有结构。1.灵活的模式SQL数据库在插入数据之前必须确定和声明表的模式,而MongoDB的集合在默认情况下不要求其文档具有相同的模式。那就是:单个集合中的文档不需要具有相同的字段集,而字段的数据类型在集...原创 2020-02-06 18:40:20 · 775 阅读 · 0 评论 -
MongoDB CRUD的概念
一、原子性和事务1.原子性在MongoDB中,写操作是单个文档级别上的原子操作,即使该操作修改了单个文档中的多个嵌入文档。2.多文档事务当单个写操作(例如db.collection.updateMany())修改多个文档时,对每个文档的修改是原子性的,但整个操作不是原子性的。在执行多文档写操作时,无论是通过单个写操作还是多个写操作,其他操作可能会交错进行。对于需要对多个文档...原创 2020-02-04 15:10:28 · 316 阅读 · 0 评论 -
Mongodb关于读取的问题(Read Concern)和Write Concern
readConcern选项允许您控制从复制集和复制集碎片读取的数据的一致性和隔离属性。通过有效地使用写关注点和读关注点,您可以适当地调整一致性和可用性保证的级别,例如等待更强的一致性保证,或者放松一致性要求以提供更高的可用性。MongoDB驱动程序更新为MongoDB 3.2或更新后的支持指定读的关注。阅读关注水平以下是已阅读的关注程度:level Description...原创 2020-02-03 16:54:16 · 2945 阅读 · 0 评论 -
MongoDB 地理空间查询
本章介绍以下几点:地理空间数据 地理空间索引 地理空间查询 地理空间模型 例子MongoDB支持对地理空间数据的查询操作。本节介绍MongoDB的地理空间特性。1.地理空间数据在MongoDB中,可以将地理空间数据存储为GeoJSON对象或遗留坐标对。1.1GeoJSON对象要计算类地球体上的几何形状,请将位置数据存储为GeoJSON对象。要指定GeoJSON数...原创 2020-01-20 10:47:26 · 2816 阅读 · 2 评论 -
mongodb 文本搜索
1.概要MongoDB支持对字符串内容执行文本搜索的查询操作。要执行文本搜索,MongoDB使用文本索引和$text操作符。提示:视图不支持文本搜索。2.例子这个例子演示了如何构建一个文本索引并使用它来查找咖啡店,只给出文本字段。使用以下文件创建集合存储:db.stores.insert( [ { _id: 1, name: "Java Hut", desc...原创 2020-01-19 16:55:46 · 807 阅读 · 0 评论 -
MongoDB 批量写操作、重试写和mongodb到sql的映射
本章基于v4.2版本。一、批量写操作本节介绍以下几点:概述 有序操作与无序操作 bulkWrite()方法 对切分集合进行批量插入的策略1.概述MongoDB为客户端提供了批量执行写操作的能力。批量写操作影响单个集合。MongoDB允许应用程序确定批量写操作所需的可接受的确认级别。新版本v3.2开始启动。db.collection.bulkWrite()方法提供...原创 2020-01-19 15:48:58 · 1494 阅读 · 0 评论 -
MongoDB CRUD基础操作
本例中将以java语言为例,进行讲解。其它语言可以参考:https://docs.mongodb.com/manual/tutorial/insert-documents/注:mongodb-java-driver 从3.0版本开始同时支持同步、异步方式(分别是不同的驱动应用)。本次介绍的插入是异步,其它均是同步。为了方便平时mongodb库操作,我会在介绍相关的java方法时,提供mon...原创 2020-01-18 17:03:11 · 626 阅读 · 0 评论 -
MongoDB之mongo shell编程
本次介绍,基于mongdb 4.2版本。一、配置mongo Shell自定义提示 使用mongo Shell中的外部编辑器 更改mongo Shell批处理大小1.自定义提示可以通过在mongo shell中设置变量提示来修改提示的内容。prompt变量可以保存字符串和JavaScript代码。如果prompt包含一个返回字符串的函数,mongo可以在每个提示中显示动态信息。...原创 2020-01-17 16:31:26 · 1133 阅读 · 0 评论 -
MongoDB安装及更新和Mongo连接
一、MongoDB安装可以参考:https://docs.mongodb.com/manual/administration/install-community/或https://www.runoob.com/mongodb/mongodb-window-install.html二、Mongo Shell介绍以下几点:启动mongo Shell并连接到MongoDB 使用...原创 2020-01-17 11:44:20 · 855 阅读 · 2 评论 -
MongoDB文档和Bson类型
本文基于最新的v4.2版本进行介绍。一、文档(Documents)文档结构 点符号 文档的局限性 文档结构的其他用途MongoDB将数据记录存储为BSON文档。BSON是JSON文档的二进制表示,它包含的数据类型比JSON多。BSON主要会实现以下三点目标:(1)更快的遍历速度对JSON格式来说,太大的JSON结构会导致数据遍历非常慢。在JSON中,要跳过一个文档进行数...原创 2020-01-16 17:04:52 · 3278 阅读 · 0 评论 -
MongoDB初步使用、视图和上限(固定)集合
注:本地学习基于MongoDBv4.2版本。一、MongoDB介绍MongoDB是一个文档数据库,它是为方便开发和扩展而设计的。MongoDB提供了社区版和企业版本,相较于社区版,MongoDB企业版增加了面向企业的特性,如LDAP和Kerberos支持、磁盘加密和审计。MongoDB属于文档数据库。MongoDB中的记录是一个文档,是一个由字段和值对组成的数据结构。Mon...原创 2020-01-15 15:29:01 · 1422 阅读 · 0 评论 -
MongoDB前言
在我们开始进行系统学习MongoDB之前,我们先回顾一些知识点:关系型数据库遵循的ACID规则1、A (Atomicity) 原子性原子性很容易理解,也就是说事务里的所有操作要么全部做完,要么都不做,事务成功的条件是事务里的所有操作都成功,只要有一个操作失败,整个事务就失败,需要回滚。比如银行转账,从A账户转100元至B账户,分为两个步骤:1)从A账户取100元;2)存入100元至...原创 2020-01-14 17:34:10 · 154 阅读 · 0 评论