当前位置: 首页 > news >正文

MongoDB集合结构分析工具Variety

工具下载地址:GitHub - variety/variety: Variety: a MongoDB Schema Analyzer

对于Mongo这种结构松散的数据库来说,如果想探查某个集合的结构,通过其本身提供的功能很不方便,通过调研发现一个很轻便的工具--variety,可以让使用者很轻松的了解存储在Mongo中具体集合的数据结构。

1. 可以清晰看到每个key使用的是什么类型的数据格式

2. 每个key在collection中的使用率

3. 可以限制documents的查询数量

4. 可以只分析documents的子集

5. 可以对查询结果进行排序

6. 查询结果输出格式支持:ASCII:很好格式化的表;JSON

基本语法:

mongo -u{username} -p{password} -p{port}

必填

databaseName

--eval "var collection='{collectionName}'" variety.js

选填

--dbpath 如果db文件不在默认路径,通过该参数进行指定

--quiet 减少不必要信息输出

sort 对结果进行排序:--eval "var collection='{collectionName},' sort={update_at: -1}"

outputFormat 结果输出格式:--eval "var collection='{collectionName}', outputFormat='json'"

limit 集合数据量较大,可以限制探索的数据量:--eval "var collection='{collecitonName}', limit=1000"

maxDepth 限制集合的嵌套层数:--eval "var collection='{collectionName}', maxDepth=3"

query 满足特定查询条件的数据:--eval "var collection='{collectionName}', query={'key': true}"

lastValue 展示最后一个文档中的值:--eval "var collection='{collectionName}', lastValue=true"

excludeSubkeys 排除一些key:--eval "var collection='{collectionName}', excludeSubkeys=['someNestedObject.a.b']"

slaveOk 指定复制副本进行读取:--eval "var collection='{collectionName}', slaveOk=true"

persistResults 保存结果到MongoDB中:--eval "var collection='{collectionName}', persistResults=true"

指定结果集保存位置:

resultsDatabase 接受数据库名或者一个host[:port]/database链接地址

resultsCollection 内容为空的集合名

resultsUser 数据库用户名

resultsPass 数据库密码

对数据结构进行分析,需要进行全表扫描,如果数据量很大,消耗一定的数据库资源,建议使用一个不提供服务的备份或者在业务低峰时进行,避免对实际业务造成压力。

http://www.lryc.cn/news/332834.html

相关文章:

  • 详解Qt中访问数据库
  • 《QT实用小工具·三》偏3D风格的异型窗体
  • 如何优化TCP?TCP的可靠传输机制是什么?
  • DFS(基础,回溯,剪枝,记忆化)搜索
  • 基于Scala开发Spark ML的ALS推荐模型实战
  • Go语言和Java编程语言的主要区别
  • 【TypeScript系列】与其它构建工具整合
  • Java | Leetcode Java题解之第12题整数转罗马数字
  • 哈佛大学商业评论 --- 第五篇:智能眼镜之战
  • paddlepaddle模型转换onnx指导文档
  • 图像处理与视觉感知---期末复习重点(6)
  • git 如何删除本地和远程分支
  • Kong基于QPS、IP限流
  • 基于springboot实现甘肃非物质文化网站系统项目【项目源码+论文说明】
  • 【瑞萨RA6M3】1. 基于 vscode 搭建开发环境
  • 使用pip install替代conda install将packet下载到anaconda虚拟环境
  • 【HTML】常用CSS属性
  • python中的print(f‘‘)具体用法
  • 《青少年成长管理2024》022 “成长七要素之三:文化”4/5
  • Linux(05) Debian 系统修改主机名
  • 之前翻硬币问题胡思乱想的完善
  • 前端与后端协同:实现Excel导入导出功能
  • Docker:探索容器化技术,重塑云计算时代应用交付与管理
  • 畅捷通T+ KeyInfoList.aspx SQL漏洞复现
  • 【面经】interrupt()、interrupted()和isInterrupted()的区别与使用
  • 了解这些技术:Flutter应用顺利登陆iOS平台的步骤与方法
  • 经济学 劳动市场 医疗经济学
  • vue + koa + Sequelize + 阿里云部署 + 宝塔:宝塔数据库连接
  • 华为昇腾认证考试内容有哪些
  • Spring Boot接收从前端传过来的数据常用方式以及处理的技巧