mongad
TypeScript icon, indicating that this package has built-in type declarations

0.2.2 • Public • Published

Mon(g)ad is a thin layer wrapping MongoDB CRUD operations in data types from fp-ts.

Installation

Add Mon(g)ad and its peerDependencies to your project via npm or yarn.

yarn add mongad mongodb
npm install mongad mongodb --save

API

Mon(g)ad provides two functions for each CRUD operation, one for a single document and one for an array of documents.

connect

connect establishes a connection to a MongoDB, wrapping MongoDB's connect method.

connect(uristring, options?: MongoClientOptions }) => TaskEither<MongoError, MongoClient>

{ useNewUrlParser: true, useUnifiedTopology: true } is used a default for MongoClientOptions.

Example:

import { connect } from 'mongad'
 
const client = connect('mongodb://localhost')()

getDb

getDb is a curried function to retrieve a Db from a MongoClient.

getDb(dbstring) => (client: MongoClient) => Db

Example:

import { map } from 'fp-ts/lib/TaskEither'
import { connect, getDb } from 'mongad'
 
const todosDb = map(getDb('todo_db'))(connect('mongodb://localhost'))()

findOne

findOne retrives one document matching the query from the collection or null, wraping MongoDB's findOne.

findOne<T>(collectionstring, queryFilterQuery<T>, options?: FindOneOptions) => ReaderTaskEither<Db, MongoError, T | null>

Example:

import { run } from 'fp-ts/lib/ReaderTaskEither'
import { findOne } from 'mongad'
 
const todo1 = run(findOne('todos', { _id: '1' }), db)

findMany

findMany retrieves an array of documents matching the query from the collection, wrapping MongoDB's find.

findMany<T>(collectionstring, queryFilterQuery<T>, options?: FindOneOptions) => ReaderTaskEither<Db, MongoError, T[]>

Example:

import { run } from 'fp-ts/lib/ReaderTaskEither'
import { findMany } from 'mongad'
 
const openTodos = run(findMany('todos', { done: false }), db)

insertOne

insertOne adds the provided document to the collection and returns it including the _id, wrapping MongoDB's insertOne.

insertOne<T>(collectionstring, documentT, options?: CollectionInsertOneOptions) => ReaderTaskEither<Db, MongoError, WithId<T>>

Example:

import { run } from 'fp-ts/lib/ReaderTaskEither'
import { insertOne } from 'mongad'
 
const newTodo = run(
  insertOne('todos', { description: 'Do something', done: false }),
  db
)

insertMany

insertMany adds all of the provided documents to the collection and returns them as an array including the _ids, wrapping MongoDB's insertMany.

insertMany<T>(collectionstring, documentsT[], options?: CollectionInsertManyOptions) => ReaderTaskEither<Db, MongoError, T[]>

Example:

import { run } from 'fp-ts/lib/ReaderTaskEither'
import { insertMany } from 'mongad'
 
const newTodos = run(
  insertMany('todos', [
    { description: 'Do something', done: false },
    { description: 'Something else ', done: false },
  ]),
  db
)

updateOne

updateOne updates one document matching the query in the collection with the provided changes and returns the updated document, wrapping MongoDB's updateOne.

updateOne<T>(collectionstring, queryFilterQuery<T>, updateUpdate<T>, options?: UpdateOneOptions) => ReaderTaskEither<Db, MongoError, T | null>

Example:

import { run } from 'fp-ts/lib/ReaderTaskEither'
import { updateOne } from 'mongad'
 
const updatedTodo = run(
  updateOne('todos', { _id: '1' }, { $set: { done: true } }),
  db
)

updateMany

updateMany updates all of the documents matching the query in the collection with the provided changes and returns the updated documents as array, wrapping MongoDB's updateMany.

updateMany<T>(collectionstring, queryFilterQuery<T>, updateUpdate<T>, options?: UpdateManyOptions) => ReaderTaskEither<Db, MongoError, T[]>

Example:

import { run } from 'fp-ts/lib/ReaderTaskEither'
import { updateMany } from 'mongad'
 
const updatedTodos = run(
  updateMany('todos', { done: false }, { $set: { done: true } }),
  db
)

deleteOne

deleteOne removes one document matching the query from the collection returning the deleted document, wrapping MongoDB's deleteOne.

deleteOne<T>(collectionstring, queryFilterQuery<T>, options?: DeleteOneOptions) => ReaderTaskEither<Db, MongoError, T | null>

Example:

import { run } from 'fp-ts/lib/ReaderTaskEither'
import { deleteOne } from 'mongad'
 
const removedTodo = run(deleteOne('todos', { _id: '1' }), db)

deleteMany

deleteOne removes all documents matching the query from the collection returning the deleted documents as an array, wrapping MongoDB's deleteMany.

deleteMany<T>(collectionstring, queryFilterQuery<T>, options?: DeleteManyOptions) => ReaderTaskEither<Db, MongoError, T[]>

Example:, options?: FindOneOptions

import { run } from 'fp-ts/lib/ReaderTaskEither'
import { deleteMany } from 'mongad'
 
const removedTodos = run(deleteMany('todos', { done: true }), db)

This project was bootstrapped with TSDX.

Package Sidebar

Install

npm i mongad

Weekly Downloads

0

Version

0.2.2

License

MIT

Unpacked Size

94.7 kB

Total Files

31

Last publish

Collaborators

  • exqir