使用 mongoimport 从 Windows 文件夹批量导入 MongoDB
Posted
技术标签:
【中文标题】使用 mongoimport 从 Windows 文件夹批量导入 MongoDB【英文标题】:MongoDB Bulk import using mongoimport from Windows folder 【发布时间】:2014-04-05 17:01:57 【问题描述】:我在存档中有很多 json 文件,我需要每次操作将它们导入 mongo(我认为它可能处于循环中)。你对此有什么想法吗?
【问题讨论】:
你要导入哪个操作系统? 我要在Win7中导入 【参考方案1】:如果你使用的是 Linux/Unix shell,你可以试试
for filename in *; do mongoimport -d mydb -c $filename; done
如果您使用的是 Windows:
FOR %i IN (C:\mongodbData\*.json) DO mongoimport --db dbName --collection colection --type json --file %i
【讨论】:
嗯,它是如何工作的?:) 我将它复制到 shell 中,编辑 db 和 col。我需要在哪里指向一个带有 jsons 的文件夹? @Sumeet 我已经更新了答案。您可以在 IN 参数中写入 windows 路径。@user3306125 非常感谢! :) @Sumeet 在完成之前需要在 $filename 后面加一个分号,至少在 OSX 上是这样。 但这是在单个集合中导入所有内容,即“集合”,如果有不同名称的不同集合怎么办。?我想用没有扩展名的 json 文件名创建集合【参考方案2】:您需要使用mongorestore
从由mongodump
创建的转储中恢复
http://docs.mongodb.org/v2.6/reference/program/mongorestore/
例如
mongorestore --drop --oplogReplay mongodb/
【讨论】:
mongorestore 不是用于 BSON 转储文件而不是 JSON 吗?【参考方案3】:你可以用这个:
FOR %i IN (<data folder>\*.json) DO mongoimport -d <database> -c <collection> --file %i
【讨论】:
【参考方案4】:mongorestore 是导入所有导出的 mongodb 文件
cd C:\Program Files\MongoDB\Server\4.0\bin
mongorestore.exe -d <db name> C:\Users\Mike\Downloads\myProject\
但是如果你真的想只导入所有 meta json 文件而不需要 .bson
cd C:\Users\Mike\Downloads\myProject\
FOR %i IN (*.json) DO "C:\Program Files\MongoDB\Server\4.0\bin\mongoimport.exe" --db <db name> --collection %~ni --type json --file %i
这是 Windows 10 上的示例工作
【讨论】:
以上是关于使用 mongoimport 从 Windows 文件夹批量导入 MongoDB的主要内容,如果未能解决你的问题,请参考以下文章
如何在我的流星应用程序数据库中使用 mongoimport?
在 mongoimport --jsonArray 的子文档上创建 _id
在 mongoimport --jsonArray 的子文档上创建 _id