【绝对无坑】Mongodb获取集合的字段以及数据类型信息

Mongodb获取集合的字段以及数据类型信息

感觉很LOW的一个数据仓工具seatunel,竟然不能自动读取mongodb的表结构信息,需要手工创建。

然鹅,本人对mongodb也是新手,很多操作也不知所措,作为一个DBA,始终还是被研发的甩锅,没得办法只能想办法帮忙把集合的字段类型导出来给他。

网上找了很多方法都不行,坑太多了。

原本想使用mongodump工具导出,但是由于版本限制,mongodb4.4版本才支持schemaonly参数,本人服务器的版本是4.2

在此,为了方便需要的小伙伴,就此贴出无坑版操作代码,希望有所帮助:

复制代码
winrs:PRIMARY> use testdb;
switched to db testdb
winrs:PRIMARY> var collection = db.dbaList;
winrs:PRIMARY> var fields = {};
winrs:PRIMARY> collection.find().forEach(function(doc) {
...     for (var key in doc) {
...         if (!fields[key]) {
...             fields[key] = typeof doc[key];
...         }
...     }
... });
winrs:PRIMARY> printjson(fields);
{
        "_id" : "number",
        "n" : "string",
        "brand" : "string",
        "stand" : "string",
        "group" : "string",
        "area" : "string",
        "dept" : "string",
        "ip" : "string",
        "port" : "number",
        "sta" : "number",
        "c_sta" : "number",
        "e_flag" : "number",
        "u_t" : "string",
        "w_t" : "string",
        "sta_t" : "string",
        "c_sta_t" : "string",
        "stop_t" : "string",
        "power" : "number",
        "v" : "number",
        "s" : "number",
        "h" : "number",
        "b_a" : "number",
        "w_a" : "number",
        "h_a" : "number",
        "l" : "number",
        "e_c" : "object",
        "m_c" : "object",
        "o_c" : "object",
        "timer" : "number",
        "count" : "number",
        "e_send" : "number",
        "m_sta" : "number",
        "s_sta" : "number",
        "sta_his_id" : "string",
        "alert_his_id" : "object",
        "c_sta_his_id" : "string",
        "alert_time" : "object",
        "ensure" : "number",
        "update_time" : "string",
        "fmis_id" : "string",
        "remarks" : "string",
        "ensure_time" : "string",
        "user_id" : "string"
}
相关推荐
一池秋_2 分钟前
云笔记本,刷linux,天翼云笔记本rk3568
linux·运维·电脑
2603_965148119 小时前
如何解析JSON数据?API返回的商品信息处理教程
开发语言·数据库·python·自动化·json·api
ltl9 小时前
RocksDB 经典故障排查:L0、compaction 与 write stall
数据库
九硕智慧建筑一体化厂家9 小时前
数字化管控落地,直流照明构筑安全照明体系
运维·人工智能·笔记·安全·智慧城市
xfhuangfu10 小时前
Oracle中建立到CDB和PDB的连接
数据库·oracle·rpc
小小龙学IT10 小时前
DuckDB 深度实战:用 C++ 在进程内跑一个「分析型数据库」
数据库·c++
NineData10 小时前
DTCC 2026 预告|NineData CEO& 创始人叶正盛:面向 AI Agent 的数据库 DevOps 与数据复制实践
数据库·人工智能·数据库开发·devops·ninedata·数据库技术·dtcc
刘某的Cloud10 小时前
ceph osd 导入导出 rbd volume 卷
linux·运维·ceph·volume
J_bean11 小时前
MySQL 事务是否必须手动开启?
数据库·mysql·数据库事务·自动提交·手动提交
J_bean11 小时前
MySQL InnoDB 如何检测死锁、判定死锁、处理死锁
数据库·mysql·死锁·死锁检测·处理死锁·死锁判定