@egomobile/mongo

npm last build PRs Welcome

@egomobile/mongo

Classes, functions and tools, that help connecting to Mongo DB servers, written in TypeScript.

Install

Execute the following command from your project folder, where your package.json file is stored:

npm install --save @egomobile/mongo

Usage

import { MongoDatabase } from "@egomobile/mongo";

// set MONGO_DB env variable with the name of the database
// set MONGO_URL env variable with the mongo connection URI

async function main() {
// alternative:
//
// mongo = new MongoDatabase();
// await mongo.connect();
const mongo = await MongoDatabase.open();
// mongo.isConnected should be (true) now

// terminate process if connection is closed
// --or-- close connection if process is exiting
//
// then return 3 as exit code
mongo.exitOnClose(3);

const my_collection = mongo.collection("my_collection");

// count documents; should be 0
const count1 = await my_collection.count({});
const count2 = await my_collection.count({ foo: 1 });

// insert single or many documents
await my_collection.insertOne({ foo: 1 });
await my_collection.insertMany([
{
foo: 1,
},
{
foo: 2,
bar: "3",
},
]);

// find documents
const firstMatchingDoc = await my_collection.findOne({ foo: 1 });
const matchingDocs = await my_collection.find({ foo: 2 });

// update documents
await my_collection.updateOne(
{ foo: 1 },
{
foo: "11",
}
);
await my_collection.updateMany(
{ foo: 2 },
{
foo: "222",
}
);

// delete documents
await my_collection.deleteOne({ foo: 1 });
await my_collection.deleteMany({ foo: 2 });

// do some low-level operations
await mongo.withClient(async (client, db) => {
const collection = db.collection("my_collection");

return collection.find({ foo: 2 }).toArray();
});

// close connection
await mongo.disconnect();
}

main().catch(console.error);

Documentation

The API documentation can be found here.

Generated using TypeDoc