0.1.6 • Published 4 years ago

mongo-iterator v0.1.6

Weekly downloads
42
License
MIT
Repository
github
Last release
4 years ago

Mongo Iterator

A small utility for efficiently iterating through MongoDb collections.

npm.io npm (tag)

npm i --save mongo-iterator

This library exposes a single class MongoIterator. The constructor takes a Mongo cursor and callback. The callback is executed with a batch of documents from the cursor. Conceptually it functions as a forEach loop.

Under the hood a MongoIterator object gathers a single bach from Mongo before invoking the callback. This means it avoids unecessary network requests. It is useful for iterating over large collections for ETL jobs or for updating documents en masse.

This library is in a work in progress. Breaking changes are inbound. YMMV.

Dependencies

Tested with:

  • Mongo 3.4.6
  • NodeJs 12.x

Usage

Basic Example

import { MongoClient } from "mongodb";
import { MongoIterator } from "./src";

async function main(): Promise<void> {
    const client = new MongoClient(...);
    await client.connect();
    const cursor = client
        .db('')
        .collection('')
        .find({})
        .sort({_id: 1})
        .batchSize(2000);

    const iterator = new MongoIterator(cursor, async batch => {
        // do something with the batch
    });

    await iterator.run();

    // log/inspect iterator.getMetrics();
}

Documentation

Just read the code. It's short.

TODO

  • Publish to NPM with type defs
  • Add unit tests to repo after I fix them
  • Test/un-deprecate the pause/resume methods.
0.1.6

4 years ago

0.1.5

4 years ago

0.1.4

4 years ago

0.1.3

4 years ago

0.1.2

4 years ago

0.1.1

4 years ago

0.1.0

4 years ago

0.0.7

4 years ago

0.0.6

4 years ago

0.0.5

4 years ago

0.0.4

4 years ago

0.0.3

4 years ago

0.0.2

4 years ago

0.0.1

4 years ago