@tenthousandcoffees/mongodb-snapshot
TypeScript icon, indicating that this package has built-in type declarations

1.4.2 • Public • Published

Dump and restore MongoDB content between data sources.

Installation

npm install @tenthousandcoffees/mongodb-snapshot

Usage

dump mongodb database to a local file

import { MongoTransferer, MongoDBDuplexConnector, LocalFileSystemDuplexConnector } from '@tenthousandcoffees/mongodb-snapshot';

async function dumpMongo2Localfile() {
    const mongo_connector = new MongoDBDuplexConnector({
        connection: {
            uri: `mongodb://<username>:<password>@<hostname>:<port>`,
            dbname: '<database-name>',
        },
    });

    const localfile_connector = new LocalFileSystemDuplexConnector({
        connection: {
            path: './backup.tar',
        },
    });

    const transferer = new MongoTransferer({
        source: mongo_connector,
        targets: [localfile_connector],
    });

    for await (const { total, write } of transferer) {
        console.log(`remaining bytes to write: ${total - write}`);
    }
}

restore mongodb database from a local file

import { MongoTransferer, MongoDBDuplexConnector, LocalFileSystemDuplexConnector } from '@tenthousandcoffees/mongodb-snapshot';

async function restoreLocalfile2Mongo() {
    const mongo_connector = new MongoDBDuplexConnector({
        connection: {
            uri: `mongodb://<username>:<password>@<hostname>:<port>`,
            dbname: '<database-name>',
        },
    });

    const localfile_connector = new LocalFileSystemDuplexConnector({
        connection: {
            path: './backup.tar',
        },
    });

    const transferer = new MongoTransferer({
        source: localfile_connector,
        targets: [mongo_connector],
    });

    for await (const { total, write } of transferer) {
        console.log(`remaining bytes to write: ${total - write}`);
    }
}

copy mongodb database to another mongodb database

import { MongoTransferer, MongoDBDuplexConnector } from '@tenthousandcoffees/mongodb-snapshot';

async function copyMongo2Mongo() {
    const mongo_connector_1 = new MongoDBDuplexConnector({
        connection: {
            uri: `mongodb://<username>:<password>@<hostname>:<port>`,
            dbname: '<database-name>',
        },
    });

    const mongo_connector_2 = new MongoDBDuplexConnector({
        connection: {
            uri: `mongodb://<username>:<password>@<hostname>:<port>`,
            dbname: '<database-name>',
        },
    });

    const mongo_connector_3 = new MongoDBDuplexConnector({
        connection: {
            uri: `mongodb://<username>:<password>@<hostname>:<port>`,
            dbname: '<database-name>',
        },
    });

    const transferer = new MongoTransferer({
        source: mongo_connector_1,
        targets: [mongo_connector_2, mongo_connector_3],
    });

    for await (const { total, write } of transferer) {
        console.log(`remaining bytes to write: ${total - write}`);
    }
}

Readme

Keywords

none

Package Sidebar

Install

npm i @tenthousandcoffees/mongodb-snapshot

Weekly Downloads

27

Version

1.4.2

License

MIT

Unpacked Size

146 kB

Total Files

59

Last publish

Collaborators

  • 10kc-emily
  • sabrina-10kc
  • 10kc-chuan
  • forivall