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 数据库密码

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

相关推荐
别来无恙blwy8 小时前
windows MongoDB升级-自动升级脚本-自动检测升级到任意版本
数据库·windows·mongodb
snow@li11 小时前
数据库-MongoDB:常用语法 / MongoDB 核心知识技能梳理
数据库·mongodb
刘晨鑫14 天前
MongoDB数据库应用
数据库·mongodb
爬山算法5 天前
MongoDB(92)什么是变更流(Change Streams)?
数据库·mongodb
小冯不疯5 天前
旺店通与金蝶云星空入库单管理对接方案
mongodb
MongoDB 数据平台5 天前
为编码代理引入 MongoDB 代理技能和插件
数据库·mongodb
忍冬行者5 天前
MongoDB 三节点副本集离线部署运维手册
运维·数据库·mongodb
卢傢蕊6 天前
MongoDB
数据库·mongodb
翻斗包菜7 天前
【MongoDB 从入门到实战:安装、配置、CRUD、权限、备份恢复全教程】
数据库·mongodb
leo__5207 天前
51单片机实现读写U盘
嵌入式硬件·mongodb·51单片机