MongoDB-怎么将csv数据导入mongodb数据库的某张表中

背景介绍

b4cf43b248b07ad2becd71813d143b82.png

948ddf48c5d33a09e6d6e7c9864413aa.png

背景就是开发突然问我能不能往数据库导数据,然后只需要某几列的数据。

我的第一想法是:用python脚本读取csv文件,将内容拼接成json格式的文本,然后用脚本的方式导入。后来发现我用的GUI工具就可以直接导入数据到数据库中。

实现过程

既然有工具能够直接导入,那肯定就用现成的工具导入就行了,工具的话,我这里选用的是:NoSQLBooster,官网下载地址:https://nosqlbooster.com/downloads

操作步骤如下:

1、要导入数据到哪个数据库,先选中数据库,然后右键,选择Import Collections,再选择Import from JSON and CSV files 选项

980025822c8115c60922483be8d70d0b.png

2、在页面选择要导入哪些列,以及对应列的字段类型,都选择好之后点执行即可:

0136f99cc8434cfb7038af8969745715.png

这里选定的csv文件内容如下:

66585c6df0675a4af64f3427b5ea9d29.png

导入数据库后的效果:

02257c07008eeca66f16bfa3d22a8dff.png

如果导入数据后,需要将字段重命令,可以用下面的语句:

格式:
db.集合名称.update({}, {$rename:{"旧键名称":"新键名称"}}, false, true)
举例:将import_test表中的age字段改为大写的AGE字段:
db.import_test.update({}, {$rename:{"age":"AGE"}}, false, true)

9050ef8e8237925a59b8c9036ca80ed7.png

不知道细心的朋友有没有发现上面导入的数据有两个问题呦:

1、数据中涉及到中文的,如果导进去的话,会是乱码呦

2、csv文件中如果是类似手机号这种的话,如果在csv里面没有把格式设置好的话,导入进去之后的值发生了变化哟

既然上面的工具导入可能有时候不太靠谱的话,那么,接下来我们来试一试使用python脚本的方式吧:

废话不多说,直接上代码:(注意读取文件的时候,要指定编码,不然可能会出现读取报错/出现乱码等未知的异常

import pandas as pd
from pymongo import MongoClient


# 读取CSV文件
df = pd.read_csv('import_test.csv',encoding='GBK')
print(df.to_dict('records'))
# 连接MongoDB
client = MongoClient('localhost', 27017)
db = client['study']
collection = db['import_test']


# 将数据写入MongoDB
collection.insert_many(df.to_dict('records'))

运行结果:

dffc74ca374bed4523b3d99c8ac25bfb.png

mongo中的数据如下:

aa1ea1617138bafdaca7f9f4db98651e.png

往期推荐

MongoDB-MongoDB简介

MongoDB-通过docker搭建一个用来练习的mongodb数据库

MongoDB-在windows电脑本地安装一个mongodb的数据库

MongoDB-使用mongo/mongosh命令行连接数据库

MongoDB-快速上手MongoDB命令行的一些简单操作

MongoDB-_id字段的含义介绍

MongoDB-插入数据insert、insertOne、insertMany、save用法介绍

MongoDB-表数据查询的基本用法介绍

MongoDB-查询语句中>、>=、<、<=、=、!=、in、not in用法介绍

MongoDB-查询语句中逻辑运算符not、and、or、nor用法介绍

MongoDB-查询语句中$exists以及结合$ne、$nin、$nor、$not使用介绍

MongoDB-使用$type查询某个字段的类型是否为xxx

MongoDB-查询中$all的用法介绍

MeterSphere教程:python2前置脚本查mongodb库提取参数&查库断言

MongoDB-查找表里面重复的记录

来都来了,点个在看再走吧~~~

69a1e0af0e29834993a0e8eed9344f47.gif

猜你喜欢

转载自blog.csdn.net/liboshi123/article/details/129210991