3.0.4 • Published 4 months ago

@idcargill/mongodb-connector v3.0.4

Weekly downloads
-
License
ISC
Repository
github
Last release
4 months ago

Mongodb Connector - App Wrapper

NPM

A simple MongoDB wrapper for CRUD operations in typescript.

Methods are wrapped async to simplify basic crud connections. Each manages a single collection.

Methods can accept type generics for return values with added MongoId.

Can also return the mongodb collection to run methods on for more complicated operations.

Usage

Build an object implementing the MongoDbConfigI interface.

import MongoDBConnector, { MongoDbConfigI } from 'mongodb-connector';

const config: MongoDbConfigI = {
  databaseName: 'MyDataBase',
  collectionName: 'spoons',
  connectionString: 'mongodb://localhost:27017/?serverSelectionTimeoutMS=2000',
};

// Create mongo connector instance
const spoons = new MongoDbConnector(config);

type GrapefruitSpoon = { sharpEdges: true };

const gfSpoon = await spoons.insertOne<GrapefruitSpoon>(payloadObj);
// gfSpoon has _id and sharp edges

CURD Methods

  • isMongoConnected() => boolean

  • insertOne(payload) => DatabaseDocument | null

  • findById(ObjectId | string) => DatabaseDocument | null

  • find(query, FindOptions) => DatabaseDocument[] | []

  • updateOne(ObjectId | string, payload) => DatabaseDocument | null

  • deleteOneItem(objectId | string) => DeleteResult

Mongo Collection for direct control

const db = mongo.getDb();

await db.connect();

await db.insertOne({});

await db.close();

Development

Start mongodb in docker:

yarn start:db

Example output

To experiment, modify src/playground.ts and run:

yarn play

Testing

Test are run against a docker mongo image.

Start the docker container:

yarn start:db

Run all tests w/ coverage:

yarn test

Run single file tests:

yarn test-file <file_name>

Stop Docker

yarn stop:db

Deploy changes to NPM

  • merge in changes to main branch
  • update local main

yarn pack

yarn publish

  • enter new version number
  • enter authentication
3.0.4

4 months ago

3.0.3

4 months ago

3.0.2

4 months ago

3.0.1

4 months ago

3.0.0

4 months ago

2.0.5

8 months ago

2.0.4

8 months ago

2.0.7

8 months ago

2.0.6

8 months ago

2.0.3

11 months ago

2.0.2

11 months ago

2.0.1

11 months ago

2.0.0

1 year ago

1.0.0

1 year ago