0
点赞
收藏
分享

微信扫一扫

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


背景介绍

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

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

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

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

实现过程

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

操作步骤如下:

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

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

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

MongoDB-怎么将csv数据导入mongodb数据库的某张表中_开发语言_04

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

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

导入数据库后的效果:

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

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

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

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

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

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'))

运行结果:

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

mongo中的数据如下:

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


举报

相关推荐

0 条评论