随笔分类 - MongoDB
摘要:背景 在使用 MongoTemplate 进行 upsert 操作时,发现mongodb表中,同一个字段出现了两种命名,如下: 说明:upsert方法中的参数,为 mongodb 中自带Update对象,且该对象的字段使用的是实体类的字段名,实体类如下: @Document(collection =
阅读全文
摘要:背景 根据mongo规范,需要将多个库的多个集合中的所有驼峰字段名称全部改为下划线分割的。如果使用mongo命令重命名集合字段,处理起来比较麻烦: 表结构的形式比较多:比如嵌套子文档、嵌套列表文档等 有些集合的字段不固定 有些集合的字段较多 多个库的多个集合,需要执行多次 所以可以通过写一个pyth
阅读全文
摘要:背景 性能测试环境,有些入侵的表数据特别多(可能超过1000W),如果使用SQL删除会很慢。但是如果直接把表drop表,索引会丢失。可以写一个脚本,批量清空mongo表数据。 实现思路 说明:以下 xx 为对应的表名 1、备份索引 db.xx.getIndexes(); 2、删除表 db.xx.dr
阅读全文
摘要:背景 当一个事件表中有大量告警时,需要一种方法能校验事件、子事件、告警数据的正确性。 采用 python + pymongo 连接到mongo库,并执行一些sql操作。 相关资料 Python教程 安装准备 安装pymongo组件 在ubuntu上执行命令: sudo apt install pyt
阅读全文
摘要:背景 事件列表分页查询时,报如下错: 说明:事件表中,如果事件如果聚合了很多告警,那这些事件的大小就会很大 问题分析 问题说明 MongoDB的 sort 操作是把数据拿到内存中再进行排序的,为了节约内存,默认给 sort 操作限制了最大内存为32M(mongo4.3以上版本是100M),当数据量超
阅读全文
摘要:官网资料:$sort 其它资料:聚合管道优化 $match + $project 当管道的顺序为 $project → $match 时,优化器会将 $match 提前到 $project 前面去执行。 例如,管道包括如下阶段: { $project: { status: 1, name: 1 }
阅读全文
摘要:mongostat 间隔固定时间(每秒)输出mongodb的当前运行状态。 ./bin/mongostat --port [port] -u qingteng -p [password] --authenticationDatabase admin 输出字段说明: 字段名称 说明 insert 每秒
阅读全文
摘要:数据结构 mongodb是文档型数据库,使用BSON格式保存数据。 mongodb使用B-树,每个节点既保存数据又保存索引,搜索时相当于二分查找。 ObjectId 每个document中必须有一个_id字段,如果在实体类上没有单独设置_id字段,mongo会自动生成一个_id字段,类型是Objec
阅读全文
摘要:简介 MongoDB的 explain() 函数可以帮助我们查看查询相关的信息,这有助于快速定位查询瓶颈。 基本用法 基本命令 db.dev.find({name:/^zhang/, age:{$gt:15}}).explain() 直接跟在 find() 函数后面,表示查看 find() 函数的执
阅读全文
摘要:基本查询 简单查询 find({"comId":"1012", "group":123}) 包含:$in find({name: {$in:["zhangsan", "lisi"]}}) #in是匹配[]中任意一个值即可 find({name: {$in:[/^zh/, /si$/]}}) #查询n
阅读全文
摘要:一、介绍 1、基本介绍 MongoDB部署架构分为单机、复制集群、分片集群。单机适合学习用,分片集群比较复杂且运维难度高。 分片集群是把大型数据集进行拆分,分片到多个MongoDB节点上,这些节点组成了分片集群。分片结构如下: 2、词汇表 Shard:分片,存储集群中的一部分数据。可以是单个mong
阅读全文
摘要:一、介绍 1、节点类型 主节点(Primary):负责处理客户端的请求。可读可写 从节点(Secondary):负责复制主节点上的数据。可读不可写 仲裁节点(Arbiter):不保留任何数据,只具有投票选举作用。不可读不可写 MongoDB实现复制集群至少需要两个节点(一主一从),仲裁节点为可选,但
阅读全文
摘要:一、安装 1、下载mongo wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-4.2.1.tgz 2、解压 tar -zxvf mongodb-linux-x86_64-rhel70-4.2.1.tgz 3、创建目录
阅读全文