Toolbox for mongodb backup and restore. Makes import and export to and from files seamless. Supports imports from json|tsv|csv and export to csv|json.
var mongoexport = require('mongopack').mongoexport;
var database = "company",
collection = "awesome",
destination = "cmp/backup",
options = {
type: "json", // default is csv
pretty: true, // gives a pretty formatted json in output file
field: ['_id', 'name', 'email', 'address', 'milestone'],
};
// perform export
mongoexport(database, collection, destination, options, function(err) {
if (err) throw new Error();
// yaay! export done!
console.log("export completed, check output to verify");
})
var mongoimport = require('mongopack').mongoimport;
var database = "company",
collection = "awesome",
file = "cmp/backup";
// perform import
mongoimport(database, collection, file, options, function(err, querydb) {
if (err) throw new Error();
querydb(); // just to verify import is done!
console.log("import completed and verified");
})
- --ssl --if the mongod process has TLS/SSL support enabled
- --sslCAFile -- the file name of the .pem file using relative or absolute paths
- --sslPEMKEYFile -- the .pem file that containes both the TLS/SSL certificate and key
- --sslPEMKeyPassword -- the password
- --sslCRLFile -- the filename
- --sslAllowInvalidCertificates bypass the validataion checks for server certificates and allows the use of invalid certificates (mongodb logs a warning for this)
- --sslFIPSMode directs the mongoexport to use FIPSMode of the installed OpenSSL library
- --username to be used when operating on an authenticated in conjunction with --password
- --password to be used in conjection with --username above
- --authenticatedDatabase when not used mongodb assumes that the db specified to export holds the user's credentials
- --authenticationMechanism Default:SCRAM-SHA-1, others supported are PLAIN and MONGODB-X509 authentication mechanism
The following parameters are mandatory for mongoexport(params)
as shown in the documentation
- --host
- --port
- --fields--ipv6 --- always enable since 3.0
- --db , -d
- --collection , -c
- --fields <field1[,field2]>, -f<field1[,field2]>
- --fieldFile to be used when the fieldnamese are large and placed in a seperate file
- --query , -q to be used in querying the data to be exported
- --type specify the data type (eg. for csv -> --type=csv) -- default is json when it is a csv file,--fields or --fieldFile must be provided
- --out , -o
- --jsonArray this command tells mongoexport to export the entire data as an array of JSON files
- --pretty to export the data in a pretty-printed format JSON
- --slaveOk, -k (depracted in 3.2) use if version is before 3.2 to (see --readPreference)
- --readPreference (--slaveOk, -k is depracated in 3.2), cannot specify both in a command it sets the read preference to the nearest when using a replica set, enabling mongoexport to read from the secondary replica set members
The following parameters are mandatory for mongoimport(params)
as shown in the documentation
- --ignoreBlanks ignores empty fields in csv and tsv exports. if not specified
mongoimport
creates fields without values in imported documents - --drop tells mongoimport to drop the collection before operating on it.
- --headerline tells mongoimport to use the first line in the input file as the field names
- --fields To use if the input file does not contain the fields to be used as headers
- --fieldFile to be used when the fieldnames are large and placed in a seperate file (to be placed one per line)
- --upsert Modifies the import process to update existing objects in teh db if they match an imported object, while inserting other objects
- --upsertFields <field1[,field2]>Specifies the list of fields for the query portion of the upsert (Since mongodb 3.0 upsertFields now implies upsert, so you may choose to use --upsertFields rather than --upsert)
- --bypassDocumentValidation as name suggests, no document validation is done during the operation (new in 3.2.1)