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

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

时间:2023-05-22 14:01:58浏览次数:51  
标签:MongoDB 数据库 db 导入 张表中 mongodb test import csv


背景介绍

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

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

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

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

实现过程

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

操作步骤如下:

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

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

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

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

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

MongoDB-怎么将csv数据导入mongodb数据库的某张表中_开发语言_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数据库的某张表中_python_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数据库的某张表中_mongodb_08

mongo中的数据如下:

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


标签:MongoDB,数据库,db,导入,张表中,mongodb,test,import,csv
From: https://blog.51cto.com/u_7739395/6323667

相关文章

  • mongodb慢查询记录
    在MySQL中,慢查询日志是经常作为我们优化数据库的依据,那在MongoDB中是否有类似的功能呢?答案是肯定的,那就是MongoDatabaseProfiler.不仅有,而且还有一些比MySQL的Slow QueryLog更详细的信息。它就是我们这篇文章的主题。开启Profiling功能有两种方式可以控制Profilin......
  • mongodb基本概念 && docker安装
    https://blog.csdn.net/packge/article/details/1265393201mongoDb采用内存加磁盘的方式存储数据;2mongoDb支持数据分片,当单一的服务器中磁盘不够用的时候,还可以串联其他服务器;3客户端的请求到达内存时,先在日志中记录下操作记录,然后再去操作内存;4内存中的日志每10ms向磁盘中的......
  • Python接口MongoDB实现接口查询数据库功能
    一、所需工具Python,pymongo,Mongodb,Flask二、安装1、安装Python我这里安装的是 3.8.0版本,输入python-V可以查看当前版本    2、安装pymongo命令行中输入  pip3installpymongo 命令执行即可完成安装。3、服务器安装Mongodb环境:linux系......
  • MongoDB-3
    mongodb进阶mongodb集群有三种模式,主从模式,副本集模式、sharding分片集模式。官网不推荐上生产环境上部署主从模式,主要是安全性太低。副本集和sharding分片集模式目前使用的最广的方案,通常这2种方案的选择通过数据量和并发数来权衡。在GB级别的基本上副本集方案可满足,TB级别或以......
  • MongoDB-2
    索引操作前面学习过MySQL,我们知道数据库里给数据构建索引通常能够极大的提高数据查询的效率,缩短查询耗时,如果没有索引,数据库在查询数据时必然会扫描数据表中的每个记录并提取那些符合查询条件的记录。同理,在MongoDB中构建索引也可以提高数据的查询效率和缩短查询耗时,没有索引的情......
  • MongoDB + SpringBoot 的基础CRUD、聚合查询
    1、数据准备1.1、springboot导包springboot版本:2.7.10点击查看代码<!--mongodb的包--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-mongodb</artifact......
  • MongoDB-01
    MongoDB官方文档:https://docs.mongodb.com/中文文档:https://www.mongodb.org.cn/mongoDB的生态、理念非常先进而且成熟、但是mongoDB不仅有开源版本,还有企业版本。所以有部分公司比较担心,哪天无法使用mongoDB了,所以也会产生一些替代产品。DynamoDB:AWSSequoiaDB:巨杉数......
  • python3 获取mongodb表中数据的条数
    说明:此处考虑了时区,mongodb默认使用"格林威治时间"1#!/usr/bin/python323importpymongo4importdatetime5importpytz67#统计8"""9/usr/bin/pip3install-Ivpymongo-ihttp://pypi.douban.com/simple/--trusted-hostpypi.douban.com......
  • mongoDB 批量将某个字段值等于另一个字段值
    将update_time字段的值设置为create_time的值:db.collection_name.find().forEach(function(item){db.collection_name.update({_id:item._id,create_time:{$exists:true}},{$set:{update_time:item.create_time}})}......
  • python3 获取mongodb表的索引
    说明:此处脚本考虑到mongodb里面数据存储的时区转换,mongodb里面的数据使用的是"格林威治"时间1#!/usr/bin/python323importpytz4frompymongoimportMongoClient56"""7/usr/bin/pip3install-Ivpytz-ihttp://pypi.douban.com/simple/--trusted-host......