variety是一个开源工具,在gitHub上有下载。
对于MongoDB这种schema-free 的数据库来说,存在数据库里的每一条数据在结构上经常不同,时间长了我们可能就很难去了解库里数据的具体结构了。
除了能显示你想要的信息,还可以很方便的保存到集合。
Variety就是一个js脚本,直接使用mongo客户端执行。
我个人最大的用途就是在你不知道多少字段名的情况下,把字段名查出来。
因为mongo特性是扩展的,没有像传统数据库desc 表名就可以显示字段名
下面是我自己的常用命令,进入到mongo根目录:
//保存结果到集合 TESTS是集合名,查的是类型是Atlas,保存到variety这个新的集合中(后面variety,js就是前面那个开源工具解压后放在服务器上的)
./mongo 192.168.10.1/TESTS --eval "var collection = 'TESTS ', query = {'mediaTypeId':'Atlas'}, persistResults=true,resultsDatabase='192.168.10.1//variety'" /opt/variety-master/variety.js
//查询variety这个新集合的所有字段名,包括嵌套的字段名。
db.variety.find({'_id':{$ne:null}},{'_id.key':1})
这个我默认的是查到最深的深度,也可以设置限制深度
这样查出来的结果后,直接导出csv就可以得到所有的字段名了。