MongoDB 数据库数据导入 - 关于如何使用 csv 导入数据的命令方法、图形界面可视化导入方法

news2024/11/25 10:26:30

序言

兴趣使然,突发奇想,想到了就写,就当打发时间了。

一、使用 csv 导入数据的命令方法

csv文件路径问题,绝对路径和相对路径都可以

方法1

type 没有=号,也是可以的,空格自动识别

测试表.csv 文件导入到 mongodatabase 库,mycollection 集合中,导入时必须指定列名称 (如果 csv 文件第一行是列名称,也会被当成数据导入到数据库中),这个方法在初始化 mongo 数据库集合时非常不好,除非是补充集合数据,就另当别论了

使用 ip:端口号 用户密码 连接mongoDB

mongoimport --host xxx.xxx.xx.xxx:9527 -u myuser -p 123456 -d mongodatabase -c mycollection --type csv --fields "name,sex,age" --file ./测试表.csv

–fields 指定导入到集合的字段名,如 name、sex、age 如果集合内存在这三个字段,那么csv 文件中的三个列数据会一一对应,比如 测试表.csv 内的测试数据如下所示:

namesexage
张三20
李四23
小明18

(注意如果是补充集合的数据,那么 csv 文件内的 name、sex、age 行数据头,需要删除整行)只需要如下数据:

张三20
李四23
小明18
张三20
李四23
小明18

方法2 (推荐该导入命令方法,初始化MongoDB集合数据)

导入数据时,指定字段类型进行导入 (注意:csv文件第一行不要有字段名称)

演示模板:

mongoimport --host xxx.xxx.xx.xxx:9527 -u myuser -p 123456 -d mongodatabase -c mycollection --type csv --columnsHaveTypes --fields "name.string(),sex.string(),age.int32(),password.int32()" --file ./测试表.csv

这个可以指定导入的字段数据格式,如 name 和 sex 字段的数据可以指定为 字符串格式 string,age 字段的格式可以指定为 NumberInt()

有一个问题是如果数据内存在数字长度超过10个的数据,那么就会报如下错误:

2023-04-21T18:23:45.466+0800    Failed: type coercion failure in document #0 for column 'password', could not parse token '12345678901' to type int32
2023-04-21T18:23:45.466+0800    imported 0 documents

在这里插入图片描述
所以需要把 int32() 改为 int64(),就会自动转换数字长度超过 10 个的数据为 NumberLong()

演示模板:

mongoimport --host xxx.xxx.xx.xxx:9527 -u myuser -p 123456 -d mongodatabase -c mycollection --type csv --columnsHaveTypes --fields "name.string(),sex.string(),age.int64(),password.int64()" --file ./测试表.csv

在这里插入图片描述

方法3

将测试表.csv文件导入到 mongodatabase 库,mycollection 集合中,使用 --headerline 参数,指定使用csv文件第一行内的字段名,作为文档的字段名称

mongoimport --host xxx.xxx.xx.xxx:9527 -u myuser -p 123456 -d mongodatabase -c mycollection --type csv --headerline --file ./测试表.csv

(作为初始化mongodb 数据库,稍微不错,有一点要注意,如果是纯数字的字段数据,那么会被自动识别为 NumberInt() 格式,比较长的会被识别为 NumberLong()

比如下面是笔者使用 Studio 3T 查看的测试数据类型:
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
笔者经过数轮 mongoimport 工具导入测试,测试得出,如果数字长度是小于等于10的数据,会自动转换为 NumberInt() 格式,如果是大于10的数字长度,就会转换为 NumberLong()

方法4 (这个我直接引用参考链接的说法)

不带-c参数导入数据,会使用文件名做为集合名,导入后集合名称为 czg_t2
mongoimport -h 127.0.0.1:27017 --authenticationDatabase=admin -u root -p c123456 -d czg --type=csv --headerline /root/mongo_export/czg_t2.csv

这个一般都会指定导入的集合,也就不多说。


参考链接

1. MongoDB mongoimport 从csv导入数据指定字段类型

二、图形界面可视化导入方法

使用Studio 3T可视化mongodb 连接工具在这里插入图片描述

如果是用其导入csv 文件数据,大概率会遇到中文乱码问题,还有字段格式问题,比如数字会大概率转换为字符串数字,导出 csv 文件时,时间格式会有问题,自动给你转换成一个 UTC 世界时间,而不是北京时间(东八区时区)

中文乱码解决方法传送门:
Windows10 Excel 如.csv文件编码问题转为 UTF-8 编码方法,解决中文乱码问题(如MongoDB导入 CSV 文件中文乱码问题)、解决科学计数显示问题


三、按时间过滤导出(随手一记)

传送门:

mongoexport带过滤条件导出

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/447875.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

pikachu靶场-csrf

csrf 跨站请求伪造(英语:Cross-site request forgery),也被称为 one-click attack 或者 session riding,通常缩写为 CSRF 或者 XSRF, 是一种挟制用户在当前已登录的Web应用程序上执行非本意的操作的攻击方…

【C++ 六】内存分区、引用

内存分区、引用 文章目录 内存分区、引用前言1 内存分区模型1.1 程序运行前1.2 程序运行后1.3 new 操作符 2 引用2.1 引用基本使用2.2 引用注意事项2.3 引用做函数参数2.4 引用做函数返回值2.5 引用本质2.6 常量引用 总结 前言 本文包含内存分区、引用基本使用、引用注意事项、…

记一次完整的rc.local中启动python脚本报psutil找不到问题解决

文章目录 1,问题1.1,rc.local1.2,watchdog.py 2,问题排查2.1,手动执行start.sh后功能正常2.2,开机启动后rc.local加载start.sh,然后start.sh启动python脚本报错2.3,怀疑是rc.local加…

SAP S/4HANA不是ERP了?

今天浏览了一下SAP官方帮助(Help)网站,有一个意外的发现,如上图:SAP S/4HANA和SAP ERP是分别显示的,这让我想起了前段时间一个朋友和我说:“S/4HANA现在都不叫ERP了,因为里面包括了超…

【C++初阶】C++入门(一):命名空间C++的输入输出缺省参数函数重载

​ ​📝个人主页:Sherry的成长之路 🏠学习社区:Sherry的成长之路(个人社区) 📖专栏链接:数据结构 🎯长路漫漫浩浩,万事皆有期待 文章目录 1.什么是C1.1 C的发…

最新Tuxera NTFS2023最新版Mac读写NTFS磁盘工具 更新详情介绍

Tuxera NTFS for Mac是一款Mac系统NTFS磁盘读写软件。在系统默认状态下,MacOSX只能实现对NTFS的读取功能,Tuxera NTFS可以帮助MacOS 系统的电脑顺利实现对NTFS分区的读/写功能。Tuxera NTFS 2023完美兼容最新版本的MacOS 11 Big Sur,在M1芯片…

Python统计学:如何理解样本统计量?

本期介绍样本统计量是怎么算的,并用Python来模拟随机抽样。用一个在鱼塘捞鱼的简单例子来理解样本均值的概念。 如何理解重复试验? 指能够在完全相同条件下进行多次的试验; 比如我们抛10枚硬币,用来计算正面出现的概率&#xff…

4.7 贝塞尔曲线

学习目标: 学习贝塞尔曲线可以遵循以下步骤: 1.了解基本概念和定义:学习贝塞尔曲线前需要了解贝塞尔曲线的基本概念和定义,如何定义一条贝塞尔曲线、控制点的概念以及贝塞尔曲线的几何性质等。 2.学习贝塞尔曲线的构造方法&…

Django搭建一个简易GPT网站

文章目录 环境安装创建主项目和应用程序在 settings.py 文件中注册应用程序在 views.py 文件中为应用程序创建视图配置应用程序的 URL创建和渲染模板KEY实现发送提示功能注意事项完整源码 环境安装 pip install django openai创建主项目和应用程序 处理完项目的环境后&#x…

第二个机器学习应用:乳腺癌数据集在决策树模型上的挖掘

目录 决策树优化与可视化 1 决策树分类 2 决策树可视化 3 显示树的特征重要性 特征重要性可视化 决策树回归 1 决策树回归 决策树优化与可视化 1 决策树分类 from sklearn.datasets import load_breast_cancer from sklearn.tree import DecisionTreeClassifier from sk…

基于C++开发的医院医学影像PACS 可二次开发,三维重建

医学影像PACS系统源码,集成三维影像后处理功能,包括三维多平面重建、三维容积重建、三维表面重建、三维虚拟内窥镜、最大/小密度投影、心脏动脉钙化分析等功能。系统功能强大,代码完整。有演示。 本套PACS系统专门针对医院工作流程设计的&am…

分布式ID生成策略总结

1、UUID 2、数据库自增ID 2.1、主键表 2.2、ID自增步长设置 3、号段模式 4、Redis INCR 5、雪花算法 6、美团(Leaf) 7、百度(Uidgenerator) 8、滴滴(TinyID) 总结比较 背景 在复杂的分布式系统中,往往需要对大量的数据进行唯一标识,比如在对…

springboot中的日志

作者:~小明学编程 文章专栏:spring框架 格言:热爱编程的,终将被编程所厚爱。 目录 为什么需要日志 如何使用日志功能 日志的打印 获取日志对象 使用日志对象打印日志 日志级别 为什么我们需要把日志分为如此多的种类呢&am…

今天面试招了个25K的测试员,从腾讯出来的果然都有两把刷子···

公司前段时间缺人,也面了不少测试,前面一开始瞄准的就是中级的水准,也没指望来大牛,提供的薪资在15-25k,面试的人很多,但平均水平很让人失望。看简历很多都是4年工作经验,但面试中,不…

《系统架构设计》-07-面向领域的技术设计

文章目录 1 实体与值对象1.1 实体对象1.1.1 唯一标识(Identity)1.1.2 可变性贫血模型充血模型 1.2 值对象1.3 示例(识别实体和值对象)1)识别实体对象2)提取值对象3)挖掘实体的关键行为4&#xf…

solidworks2022 - feature works 变灰的解决方法

文章目录 solidworks2022 - feature works 变灰的解决方法概述实验feature works 变灰问题的重现备注END solidworks2022 - feature works 变灰的解决方法 概述 feature works 用于step文件转零件. 一般是不同版本的solidworks交换文件的方法. 今天突然发现, 我自己转出的ste…

Spring框架使用总结

Spring框架使用 前言处理事务管理声明式事务:编程式事务: 框架核心常见注解 AOP( 面向切面编程)切面和通知有哪些类型?切面的类型通知类型AOP实现使用场景 IOC(管理所有的JavaBean)依赖注入(DI)…

像素比特行列置乱加密算法安全性分析

比特行列置乱加密 将MN大小的灰度图像每个像素值转换为8bit二进制,得到M8N大小的二值图像。 基于加密秘钥,生成随机序列TM和TN分别对二进制图像的行列进行置乱,生成置乱加密后的图像。 Logistic混沌序列加密: 选择明文攻击过程 …

Node内置模块 【path模块】

文章目录 🌟前言🌟path模块🌟引用模块🌟常用属性🌟path.sep🌟在MacOSX、 Unix、Linux操作系统上:🌟在 Windows 上: 🌟常用方法🌟将路径转换为对象…

【python视图1】networkx操作Graph图

一、说明 数据可视化需要显示种种数据,matplotlib负责曲线类画图,然而类似于图论的操作用什么方法。这里用networkx程序包完成。本文专门介绍这种程序包的用法。 二、生成图(Creating a graph) 2.1 创建一个没有节点和边的空图。…