I have a folder in my computer containing a list of files in json and bson format to be added into my local mongodb. The name of the db is sahaj_dev. This is the image of the list of files on my computer
I have to add all these files to my sahaj_dev database as collections of that database.
How can I do it. I am not sure whether to use mongoimport or mongostore. I am new to mongodb. Kindly help me out with the command to be used. Thanks. This is the image of database to which I have to add all the files
I found the answer for it. I have to use the mongorestore command. The syntax of it is
mongorestore -d <db_name> <location of the folder>
This would restore all the files in the folder and create respective collections for it in the local mongoDB
Related
I exported the collections from a local database and I want to import them into an ec2 instance.
I did the following:
1) I exported the collections to a folder called data. The files are in this format:
collecion_test.bson
collection.metadata.json
2) I transferred the folder to an ec2 instance. The path to access the folder is like this:
/home/ec2-user/data
3) I went into mongo and did "use database_test" and created a collection like this: db.createCollection("data")
Finally, I tried to import the file this way:
mongoimport --db database_test --collection data --file /home/ec2-user/data/data.metadata.json -jsonArray
but I get this error:
2022-02-18T19:29:38.380+0000 E QUERY [js] SyntaxError: missing ; before statement #(shell):1:14
I appreciate if anyone can help me analyze this!
The problem is that you used mongodump which created the xxx.bson and xxx.meta.json so you need to use mongorestore to read those files. Use mongoimport to read files created with mongoexport
for a full explanation see https://docs.mongodb.com/database-tools/
In short mongodump/mongorestore deal with bson files while mongoexport/mongoimport work with csv/tsv/json files. So for example one neat thing about these commands, is if you supply an optional -q parameter like {field:x} then only the records that filter would select will be used in the dump.
I'm using mongodb for saving the data for my application and I want to backup of that database in gzip file I searched for it and I found question posted by the other users
link https://stackoverflow.com/questions/24439068/tar-gzip-mongo-dump-like-mysql
link https://stackoverflow.com/questions/52540104/mongodump-failed-bad-option-can-only-dump-a-single-collection-to-stdout
I used these commands but that will not me the expected output I want the command that will create my database gzip compress file and using extraction I will restore that database folder into the mongodb
currently I'm using this below command
mongodump --db Database --gzip --archive=pathDatabase.gz
which will create a compression of .gz while I extract it it will show me nothing.
Can you please give me a command that I will use it or any suggestions will appreciated.
When you use mongodump --db Database --gzip --archive=pathDatabase.gz You will create 1 archive file (it does not create a folder) for the specified DB and compress it with gzip. Resulting file will be pathDatabase.gz in your current directory.
To restore from such file, you'd do this
mongorestore --gzip --archive=pathDatabase.gz
This will restore the db "Database" with all its collection.
You can check out these MongoDB documentation pages for more info
Dump: https://docs.mongodb.com/manual/reference/program/mongodump/
Restore: https://docs.mongodb.com/manual/reference/program/mongorestore/
Edit: Removed --db flag from restore command as it is not supported when used with --archive.
mongodump --archive=/path/to/archive.gz --gzip will actually create an archive which interleaves the data from all your collections in a single file. Each block of data is then compressed using gzip.
That file can not be read by any other tool than mongorestore, and you need to use identical flags (i.e. mongorestore --archive=/path/to/archive.gz --gzip), which you can use to restore your dump on another deployment.
The resulting archive can not be extracted using gunzip or tar.
If you need to change the target namespace, then you should use the --nsFrom, --nsTo and --nsInclude options in order to use a different database name.
I want to copy from one mongo db to another db on the same server. Mongo version is 2.6.3 on Win 2008 64bit.
I ran the command:
mongo localhost:27017/admin -u <> -p <> --eval "db.copyDatabase('db_master','db_copy1')"
This worked and created db_copy1 with all the users in it. I did db.getUsers() on db_copy1 and it returned all users. All was fine.
Then I went on to copy the database db_copy1 to db_copy2 using the same command above (with different database names obviously). But the resultant db_copy2 had no users in it.
Fairly new to mongo, so quite possible I have missed something.
Thanks in advance for all your help!
Vikram
One of the things I love about Mongodb is that rather than mess about with commands like that you can just copy the files.
Just go to the directory with the data files in it and copy them to the dbpath for your new database. If you don't want a certain database, don't copy the files with that database name!
I have a DB2 v9.7 Dump(.gz format) which i need to import to an another DB2 database of same version.
All the tables needs to be imported in one go.
Can somebody help me in how to achieve this ?
Thankyou in adavnce.
-Nitika
First, the DB2 backups do not have that name structure. You should have a file inside that .gz that should have a name like this
SAMPLE.0.db2inst1.NODE0000.CATN0000.20131224235959.001
It gives the database name, the backup type; the instance that host the database; the node (when using DPF); the timestamp; and the file number.
Normally, it just change the timestamp. And in order to restore the db you should go to the directory where the file is, and then just type:
db2 restore db sample
Eventually, if it does not work, you should specify the timestamp, directory or other things:
db2 restore db sample from /dir taken at 20131224235959
If you change the instance, you should rebind some packages. Also, you should be sure that the security structure is the same in the new installation (/etc/passwd and /etc/group have the same users and groups used in DB2)
For more information, please check: http://pic.dhe.ibm.com/infocenter/db2luw/v10r5/topic/com.ibm.db2.luw.admin.ha.doc/doc/c0006237.html
You can use db2move command
db2move sample export
db2move sample import
where sample is the database name.
If you are having .dmp file then you can use below commands import .dmp file.
If you have dmp file in tar or zip you need to extract this.
db2 –c- -svtf db2dump.dmp > log.txt
Note:
It is different then: restore command as below :
restore db from Path_of_the_backup_file.
eg: restore db QAST from C:\Backups\Backup_location
backup db to C:\Backups\Backup_location.
eg: restore db QISST from C:\Backups\Backup_location
I recently used mongodump to copy my production database named app_production. I copied the dump files to another machine, and I would like to use mongorestore to copy all the dump data into a database named app_development. How can I do this?