【MongoDB】2.MongoDB导入文件

目录

[一、MongoDB Compass](#一、MongoDB Compass)

二、mongoimport

1、安装

2、语法:

3、可能出现的错误

三、MongoDB的GridFS

1、介绍

2、语法


一、MongoDB Compass

这个简单,不做赘述

二、mongoimport

Mongoimport是一个用于导入数据到MongoDB的工具,默认情况下,它使用较小的内存限制来处理导入操作。

1、安装

(1)进入mongodb 官网,找到 tools 里面的 MongoDB Database Tools

(2)下载的压缩文件夹下的 bin 目录的 exe后缀文件全选,复制到 MongoDB \ bin 目录下面

(3)重新打开一个cmd窗口,就可以根据语法使用了

2、语法:

(1)基本语法

mongoimport -d 数据库名称 -c 集合名称 --file 要导入的数据文件

当导入的数据文件较大时,可能会超出默认的内存限制,导致解析错误。

(2)大文件分批次语法

可以使用Mongoimport的**--batchSize**选项,将导入过程分成多个批次来处理,从而减少单个批次的内存使用量。通过调整每个批次的大小,您可以控制导入过程中的内存使用,并避免"文件过大"错误。

注:**batchSize****含义:**批大小,每个批次的文件数量

mongoimport --db 数据库名称**--collection** 集合名称 --file 要导入的数据文件 --batchSize 1000

3、可能出现的错误

(1)Failed: an inserted document is too large

问题:mongoimport 工具报错 "an inserted document is too large" 表示有单个文档的大小超过了 MongoDB 默认的文档大小限制(16MB)。这是因为 MongoDB 不允许插入超过 16MB 的单个文档。如果你的JSON文件中的某些文档本身就超过了16MB的限制,那么无论批次大小如何设置,这些文档都无法被导入。

解决方法:使用GridFS,没有文件限制

(2)Failed: can not decode array into a D

解决方法:把参数 --file改成--jsonArray 即可 如果JSON文件是一个大数组,包含多个对象,可以使用--jsonArray选项来告诉mongoimport整个文件被视为一个JSON数组。

三、MongoDB的GridFS

1、介绍

GridFS 用于存储和恢复那些超过16M(BSON文件限制)的文件(如:图片、音频、视频等)。

GridFS 也是文件存储的一种方式,但是它是存储在MonoDB的集合中。

GridFS 会将大文件对象分割成多个小的chunk(文件片段),一般为256k/个,每个chunk将作为MongoDB的一个文档(document)被存储在chunks集合中。

GridFS 用两个集合来存储一个文件:fs.files与fs.chunks每个文件的实际内容被存在chunks(二进制数据)中,和文件有关的meta数据(filename,content_type,还有用户自定义的属性)将会被存在files集合中。

2、语法

无需安装,MongoDB自带,在MongoDB/bin文件夹中。

mongofiles.exe -d 数据库名称 --prefix 集合名称 put 要导入的数据文件

相关推荐
辞旧 lekkk19 分钟前
【Qt】信号和槽
linux·开发语言·数据库·qt·学习·mysql·萌新
2301_809204702 小时前
JavaScript中严格模式use-strict对引擎解析的辅助.txt
jvm·数据库·python
zjy277772 小时前
mysql如何选择合适的索引类型_mysql索引设计实战
jvm·数据库·python
笨蛋不要掉眼泪2 小时前
Mysql架构揭秘:update语句的执行流程
数据库·mysql·架构
万邦科技Lafite2 小时前
京东item_get接口实战案例:实时商品价格监控全流程解析
java·开发语言·数据库·python·开放api·淘宝开放平台
秋93 小时前
ruoyi项目更换为mysql9.7.0数据库
数据库
Andya_net3 小时前
MySQL | MySQL 8.0 权限管理实践-精确赋予库、表只读等权限
android·数据库·mysql
筑梦之路4 小时前
harbor数据库报错权限异常如何处理——筑梦之路
数据库·harbor
czlczl200209255 小时前
理解 MySQL 行锁:两阶段锁协议与热点更新优化
数据库·mysql
AllData公司负责人5 小时前
通过Postgresql同步到Doris,全视角演示AllData数据中台核心功能效果,涵盖:数据入湖仓,数据同步,数据处理,数据服务,BI可视化驾驶舱
java·大数据·数据库·数据仓库·人工智能·python·postgresql