mongoDB
南熏门前一只喵
这个作者很懒,什么都没留下…
展开
-
spring-data-mongodb从2.x升级至3.x版本,aggregate group操作,分组字段出现_id前缀的解决方式
背景由于Spring boot安全漏洞,须将项目中Spring boot升级至2.3.4版本,2.3.4版本集成了spring-data-mongodb 3.x版本,项目中原spring-data-mongodb 2.x版本被替换成spring-data-mongodb 3.x版本,须进行兼容性适配。spring-data-mongodb从2.x升级至3.x版本部分api变化见官网项目链接问题描述适配过程中发现,项目中存在大量aggregate group操作,例如:TypedAggregatio原创 2020-09-22 20:04:50 · 3407 阅读 · 2 评论 -
mongodb $lookup设置多个join条件,实现关联来源表(from)的查询结果集
从mongodb 3.6开始支持为$lookup操作的来源表指定多个查询条件。实现类似如下sql的效果:SELECT a.x1,a.x2...,a.xn, b.x1,b.x2...b.xnFROM aWHERE a.x1 IN (SELECT b.x1,b.x2...b.xn FROM b WHERE a.x1 = b.x1 AND b.x2 = 'xxxx' );业务场景:zw原创 2020-09-14 19:24:32 · 4426 阅读 · 0 评论 -
步步为营,mongodb3.2.x版本升级至4.2.x版本全过程——面向standalone和副本集部署模式
文章目录一.standalone部署模式升级步骤1.1 升级前准备1.2 执行升级1.2.1 升级至3.4.x版本:1.2.2 从3.4.x版本升级至3.6.x版本1.2.3 从3.6.x版本升级至4.0.x版本(操作同上)1.2.4 从4.0.x版本升级至4.2.x版本(操作同上)二.副本集部署模式升级步骤2.1 升级前准备2.2 执行升级2.2.1 从3.2.x版本升级到3.4.x版本2.2.2 从3.4.x版本升级到3.6.x版本2.2.3 从3.6.x版本升级到4.0.x版本2原创 2020-06-18 17:12:07 · 2602 阅读 · 0 评论 -
mongodb副本集模式执行命令遭遇not authorized on admin to execute command报错的解决方式
现象分片集群的副本集登录mongo shell突然发现执行不了常用命令了,报错:Error: error: { "ok" : 0, "errmsg" : "not authorized on admin to execute command { find: \"system.users\", filter: {}, lsid: { id: UUID(\"8ae63013-55be-48db-a163-ba1148d95fce\") }, $db: \"admin\" }", "code" : 13原创 2020-06-16 10:55:41 · 7904 阅读 · 0 评论 -
5分钟,快速从mongodb standalone模式迁移至mongodb副本集模式,基于mongodb 3.2.x版本
从mongodb standalone模式迁移至副本集模式(3.2.x版本)步骤一:停止所有mongodb读写,否则影响数据同步。步骤二:创建副本集的mongo实例,将standalone模式的数据库文件拷贝所有副本集实例对应配置文件的dpapth路径中。注:该操作也可不进行,仅保留主库中数据文件,secoundary节点数据库文件为空,依赖副本集初始化过程的数据自动同步机制,将数据同步到secoundary节点,如果数据库较大,这样操作耗时较长。步骤三:创建集群用户:以standalone模式启原创 2020-06-15 21:51:34 · 1543 阅读 · 0 评论 -
mongodb执行外挂js脚本实现根据指定属性分组,提取相关属性输出到csv文件
编写js脚本,实现根据设备厂商型号分组并提取对应厂商、型号。var cursor=db.getCollection('LatestDeviceInfo').aggregate([{ "$group":{ "_id":{ "manufacturer":"$manufacturer", ...原创 2020-04-29 14:48:14 · 391 阅读 · 0 评论 -
超简单mongodb 4.2分片集群搭建指南
本文以三台虚拟机为例搭建mongodb分片集群实验环境。由于config节点和mongos路由节点为单实例方式,所以现网部署不推荐此方式部署,仅供参考。现网部署应考虑config节点和mongos路由节点的高可用。部署环境:三台虚拟机 16核 32GB 200GB硬盘centos 6.9mongodb 4.2.0整体集群结构计划创建三个分片,每个分片采用一主一副已仲裁构建副本集,搭建...原创 2020-03-19 17:44:28 · 2977 阅读 · 1 评论 -
mongodb获取aggregate处理结果的总数
对mongodb执行aggregate操作命令得到结果集,前端页面展示时有时需要做分页这类场景,需要获得结果集的总数。将整个结果集都查询出来往往需要耗费很大网络io和内存。本文介绍一种方法返回经aggregate处理后结果集的记录总数。对3.4之前的mongodb版本,aggregate的stages并没有提供$count算子返回结果集记录数,可通过如下方式获得,对一个结果集记录中存在的key或...原创 2020-03-07 14:43:33 · 11997 阅读 · 0 评论 -
monogodb使用$lookup,$unwind,$project,$group,$push进行多表关联查询,提取指定字段,根据指定字段分组
mongo aggregate操作使用$lookup,$unwind,$project,$group操作符,执行多表连接查询,提取多表指定字段,对指定字段进行分组求和得到结果:db.getCollection('DeviceDetailInfo_20191230').aggregate([{$lookup:{from:'DeviceDetailInfo_20191229',localField...原创 2020-01-21 11:48:11 · 2506 阅读 · 0 评论 -
mongodb $setOnInsert指令说明
$setOnInsert$setOnInsert指令往往同upsert、$set指令配合使用。mongodb官网说明:If an update operation with upsert: true results in an insert of a document, then $setOnInsert assigns the specified values to the fields ...原创 2019-11-06 21:56:22 · 7030 阅读 · 0 评论 -
基于spring data操作mongoDB数据库数据持久层(dao层)设计感悟
spring data项目旨在对不同数据源提供一组相似的、较一致的具有spring style的交互方法。目的方便用户对不同数据源(关系数据库、非关系性数据等)的api操作,并简化系统持久层的代码逻辑结构。spring data项目包含多个子项目,不同数据源有不同的子项目对应。详见spring data官方文档 。项目中的问题以及本文目的在项目开发过程中由于前期没有很好规划,mongoDB操作...原创 2019-07-13 20:19:37 · 2252 阅读 · 0 评论 -
Spring Data MongoDB aggregate添加allowDiskUse属性
mongo对大数据集进行aggregate集合操作,处理各stage阶段中,为了避免 pipeline 的 stage 的内存使用超过 100 MB 而报错。需要设置allowDiskUse为true使用系统缓存,以临时文件进行存储。Spring Data MongoDB api不同版本对allowDiskUse设置的操作写法不同。对于Spring Data MongoDB 1.5.x以上2....原创 2019-07-29 16:54:51 · 9668 阅读 · 0 评论 -
Spring Data api常用mongoDB操作(不定期更新)
使用projections查询collection中指定属性 Query query=new Query(); Criteria criteria=new Criteria(); criteria.and("accountId").is(accountId); query.addCriteria(criteria); query.f...原创 2019-07-24 19:57:09 · 2529 阅读 · 0 评论