MongoDB Go Driver使用帮助文档

正式的MongoDB Go Driver近来变成1.0的GA版本。它现在被认为是一个完整的特性, 并且准备好在正式产品中使用。这篇使用说明书将帮助你开始使用 MongoDB Go Driver。你将会创建一个简单的程序并且学到如何:

  • 安装MongoDB Go Driver
  • 使用Go Driver来连接MongoDB
  • 在Go内使用BSON对象
  • 给MongoDB发送CRUD操作

你可以在git[......]

阅读全文

【五分钟了解MongoDB 2】为何选择文档数据结构

文档数据结构是数据的自然表达。我们仅仅在70年代将数据拆分为行和列来优化数据的访问。由于当时存储和计算能力的价格高昂,耗费开发者的时间将数据减少、拆散为行和列的模式是有意义的,通过范式、相互关联等范式来减少数据的重复。这一过程有一定的成本效益,故而它主导了当时的数据库思维。

很多人都把定义行、列模式视作使用数据库的必要负担。不过,在很多方面来看,关系数据库仍然需要开发者和数据结构设计者将数据结构[......]

阅读全文

常见问题: MongoDB 存储

  • 存储引擎基础知识
  • 你可以在副本集中混用存储引擎吗?
  • WiredTiger存储引擎
  • MMAPv1存储引擎
  • 我可以手动填充文档以防止更新期间的移动吗?
  • 数据存储诊断

该文档讲述关于MongoDB存储系统的常见问题。

存储引擎基础

什么是存储引擎?

存储引擎是数据库的一部分,负责管理如何在内存和磁盘上存储数据。许多数据库支持多个存储引擎,其中不同的引擎对特定工作负载的性能会更好。例如,一个存[......]

阅读全文

MongoDB 索引详解(一)

  • 默认_id 索引
  • 创建索引
  • 索引类型
  • 索引属性
  • 索引使用
  • 索引及排序规则
  • 覆盖查询
  • 交叉索引
  • 限制
  • 其他注意事项

索引支持MongoDB中查询的高效执行。如果没有索引,MongoDB必须执行集合扫描,即扫描集合中的每个文档,以选择与查询语句匹配的文档。如果查询存在适当的索引,MongoDB可以使用索引来限制它必须检查的文档数。

索引是特殊的数据结构[1],它以易于遍历的形式存储部分集合数据[......]

阅读全文

MongoDB sharding 集合不分片性能更高?

最近云上用户用户遇到一个 sharding 集群性能问题的疑惑,比较有代表性,简单分享一下

测试配置

  • mongos x 2、shard x 3
  • 测试1:集合不开启分片,批量 insert 导入数据,每个 batch 100 个文档
  • 测试2:集合开启分片,随机生成 shardKey,chunk 已提前 split 好,能确保写入均分到3个shard

测试结果

  • 测试1:单个 shard[......]

阅读全文

mongodb 索引详解(二)

1. 单字段索引

MongoDB为文档集合中的任何字段提供完整的索引支持 。默认情况下,所有集合在_id字段上都有索引,应用程序和用户可以添加其他索引以支持重要的查询和操作。

本文档描述了单个字段的升序/降序索引。

1.1 在单个字段上创建升序索引

如:records集合,它包含文档如下:

{
  "_id": ObjectId("570c04a4ad233577f97dc459"),[......]

阅读全文

【五分钟了解MongoDB】Change Stream 和MongoDB 4.x

充分获知数据库的数据变动是从MongoDB向其他数据服务进行数据同步的关键点。与直接查询collection来获取数据变动相比,通过流式的方式进行监听会有效并及时的多。这是一种非常强大的“响应式编程”模式。随着MongoDB的版本更新,流式的获取方式将变得原来越易用。

让我们来一同回顾一下。在MongoDB3.6之前,如果我们希望对MongoDB数据库中的数据变动进行监听,我们通常是通过 “监听[......]

阅读全文

MongoDB 4.2 新特性解读

MongoDB World 2019 上发布新版本 MongoDB 4.2 Beta,包含多项数据库新特性,本文尝试从技术角度解读。

1

Full Text Search

MongoDB 4.2 之前,全文搜索(Full Text Search)的能力是靠 Text Index 来支持的,在 MongoDB-4.2 里,MongoDB 直接与 Lucene 等引擎整合,在 Atlas 服务里提[......]

阅读全文

副本集是如何实现自动Failover的

简介

最近一个 MongoDB 集群环境中的某节点异常下电了,导致业务出现了中断,随即又恢复了正常。
通过ELK 告警也监测到了业务报错日志。

运维部对于节点下电的原因进行了排查,发现仅仅是资源分配上的一个失误导致。 在解决了问题之后,大家也对这次中断的也提出了一些问题:

>”当前的 MongoDB集群 采用了分片副本集的架构,其中主节点发生故障会产生多大的影响?”
>”Mong[......]

阅读全文