Skip to content

Automattic/monk

Folders and files

NameName
Last commit message
Last commit date

Latest commit

5505e62 · Apr 15, 2021
May 21, 2017
Apr 28, 2020
Oct 13, 2020
Sep 14, 2017
Apr 28, 2020
Jun 23, 2016
May 20, 2017
Apr 28, 2020
Apr 16, 2020
Apr 15, 2021
May 21, 2017
May 21, 2017
Jun 14, 2017
Jun 4, 2017
May 21, 2017
Apr 5, 2021
Apr 15, 2021

Repository files navigation

Monk


A tiny layer that provides simple yet substantial usability improvements for MongoDB usage within Node.JS.

build status codecov Join the chat at https://gitter.im/Automattic/monk

note: monk 2.x drop the support for node < 0.12. If you are still using an earlier version, stick to monk 1.x

const db = require('monk')('localhost/mydb')
// or
// const db = require('monk')('user:pass@localhost:port/mydb')

const users = db.get('users')

users.index('name last')
users.insert({ name: 'Tobi', bigdata: {} })
users.find({ name: 'Loki' }, '-bigdata').then(function () {
  // exclude bigdata field
})
users.find({}, {sort: {name: 1}}).then(function () {
  // sorted by name field
})
users.remove({ name: 'Loki' })

db.close()

Features

  • Well-designed API signatures
  • Easy connections / configuration
  • Command buffering. You can start querying right away
  • Promises built-in for all queries. Easy interoperability with modules
  • Auto-casting of _id in queries
  • Allows to set global options or collection-level options for queries. (eg: castIds is true by default for all queries)

Middlewares

Most of the Monk's features are implemented as middleware.

There are a bunch of third-parties middlewares that add even more functionalities to Monk:

Created an nice middleware? Send a PR to add to the list!

How to use

Documentation

License

MIT