Giter Club home page Giter Club logo

mongodb-generic-dal's Introduction

mongodb-generic-dal

Statements Branches Functions Lines

purpose

This is a little library built on top mongodb native nodejs driver.

The package exposes its own declaration files; you won't need to install any @types/* if you use typescript.

Installation

To install, use either yarn or npm:

yarn add mongodb-generic-dal
npm i mongodb-generic-dal

Prerequisites

The module relies on env variables to connect to a mongodb instance:

Let's look at a code example

import * as GenericDal from "mongodb-generic-dal";

interface MyData {
   _id?: ObjectId;
   name: string;
   value: number;
}

const letsCRUD = async () => {
   const item = {
      name: "Cool",
      value: 1024
   };
   const id = await GenericDal.create<MyData>("mycollection", item);
   const persistedItem = await GenericDal.getBy<MyData>("mycollection", { _id: id }, {});
   const updatedItem = await GenericDal.createOrUpdate<MyData>("mycollection", { _id: id }, {
      name: "Yolo",
      value: 0
   });
   const isDeleted = await GenericDal.remove("mycollection", {_id: id});
};

API

create

Inserts a document in the specified collection. Returns the id of the document inserted.

const create = async <T>(
   collectionName: string,
   value: OptionalId<T>
): Promise<ObjectId | undefined>

createOrUpdate

Either creates a new document or updates an existing one, depending on the presence of term in the collection.

const createOrUpdate = async <T>(
  collectionName: string,
  term: object,
  value: OptionalId<T>
): Promise<T | undefined>

getAll

Fetches all the documents in a collection.

const getAll = async <T>(
   collectionName: string
): Promise<Array<T>>

getBy

Fetches documents in collection matching term. Items can be sorted using sort; a limited number of documents can be returned by specifying count.

const getBy = async <T>(
  collectionName: string,
  term: object,
  sort: object,
  count?: number
): Promise<Array<T>>

clearAndCreateMany

Removes all documents matching term in collection, then inserts values in the collection.

const clearAndCreateMany = async <T>(
  collectionName: string,
  term: object,
  values: Array<OptionalId<T>>
): Promise<boolean>

clearAllAndCreateMany

Removes all documents in collection, then inserts values in the collection.

const clearAllAndCreateMany = async <T>(
  collectionName: string,
  values: Array<OptionalId<T>>
): Promise<boolean>

remove

Removes the document matching term from the collection.

const remove = async <T>(
  collectionName: string,
  term: object
): Promise<boolean>

mongodb-generic-dal's People

Contributors

jpb06 avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.