Description
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.
Export API:
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");
})
Import API:
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");
})
Controlling import or export behaviour
- --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
Controlling export behaviour peculiar to data export
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
Controlling import behaviour peculiar to data import
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)