MongoDB Bulk import using mongoimport from Windows folder
Asked Answered
C

4

13

I have a lot of json files in archive and i need to import them into mongo per one operation (i think that it might be in cycle). Have you any ideas about this?

Conveyancing answered 4/3, 2014 at 9:3 Comment(2)
In which operating system you want to import ?Carrero
I want to import in Win7Conveyancing
C
25

If you are in a Linux/Unix shell you can try

for filename in *; do mongoimport -d mydb -c $filename;  done

If you are on Windows:

FOR %i IN (C:\mongodbData\*.json) DO mongoimport --db dbName --collection colection --type json --file %i
Carrero answered 4/3, 2014 at 9:12 Comment(6)
Well, how it works?:) I'm copy this into the shell, edit db and col. Where i need to point a folder with jsons? @SumeetConveyancing
i have updated the answer. You can write windows path in IN parameter .@ConveyancingCarrero
Needs a semicolon after $filename before done, at least on OSX.Seeger
But this is importing everything in single collection i.e 'collection', what if there are the different collections with different names.? I would like to create collections with json file names without extensionDilate
error parsing command line options: expected argument for flag `/file'Amaro
this script works however it connected to mongodb client so in case of importing thousands of files it takes quite a lot of time. is there anyway to speed up the script?Inconspicuous
H
4

mongorestore is import all exported mongodb files

cd C:\Program Files\MongoDB\Server\4.0\bin
mongorestore.exe -d <db name> C:\Users\Mike\Downloads\myProject\

But if you really want to import all only meta json files without .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

This is sample work on windows 10

Horoscopy answered 25/1, 2019 at 19:35 Comment(0)
A
3

You need to use mongorestore for recovery from dump, created by the mongodump

http://docs.mongodb.org/v2.6/reference/program/mongorestore/

for example

mongorestore --drop --oplogReplay mongodb/

Alewife answered 17/8, 2015 at 6:6 Comment(1)
Isn't mongorestore for BSON dump files rather than JSON?Sinecure
E
0

You can use this:

FOR %i IN (<data folder>\*.json) DO mongoimport -d <database> -c <collection> --file %i
Eugene answered 17/12, 2017 at 8:0 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.