https://github.com/lihaibh/ditto
NPM library that helps managing MongoDB snapshots easily and efficiently
https://github.com/lihaibh/ditto
Last synced: 8 months ago
JSON representation
NPM library that helps managing MongoDB snapshots easily and efficiently
- Host: GitHub
- URL: https://github.com/lihaibh/ditto
- Owner: lihaibh
- License: mit
- Created: 2020-06-13T13:08:58.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2023-07-12T06:10:10.000Z (over 2 years ago)
- Last Synced: 2025-04-27T00:31:53.347Z (9 months ago)
- Language: TypeScript
- Homepage: https://www.npmjs.com/package/mongodb-snapshot
- Size: 151 KB
- Stars: 51
- Watchers: 2
- Forks: 8
- Open Issues: 13
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-list - mongodb-snapshot
README
# [mongodb-snapshot](https://github.com/lihaibh/mongodb-snapshot)
Dump and restore MongoDB content between data sources.
## Installation
```sh
npm install mongodb-snapshot
```
## Usage
*dump mongodb database to a local file*
```typescript
import { MongoTransferer, MongoDBDuplexConnector, LocalFileSystemDuplexConnector } from 'mongodb-snapshot';
async function dumpMongo2Localfile() {
const mongo_connector = new MongoDBDuplexConnector({
connection: {
uri: `mongodb://:@:`,
dbname: '',
},
});
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*
```typescript
import { MongoTransferer, MongoDBDuplexConnector, LocalFileSystemDuplexConnector } from 'mongodb-snapshot';
async function restoreLocalfile2Mongo() {
const mongo_connector = new MongoDBDuplexConnector({
connection: {
uri: `mongodb://:@:`,
dbname: '',
},
});
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*
```typescript
import { MongoTransferer, MongoDBDuplexConnector } from 'mongodb-snapshot';
async function copyMongo2Mongo() {
const mongo_connector_1 = new MongoDBDuplexConnector({
connection: {
uri: `mongodb://:@:`,
dbname: '',
},
});
const mongo_connector_2 = new MongoDBDuplexConnector({
connection: {
uri: `mongodb://:@:`,
dbname: '',
},
});
const mongo_connector_3 = new MongoDBDuplexConnector({
connection: {
uri: `mongodb://:@:`,
dbname: '',
},
});
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}`);
}
}
```