Exciting news!Announcing our $4.6M Series Seed. Learn more
Socket
LoveBlogFAQ
Install
Log in

@brickyang/easy-mongodb

Package Overview
Dependencies
2
Maintainers
1
Versions
6
Issues
File Explorer

Advanced tools

@brickyang/easy-mongodb

Based on MongoDB Native Node.js Driver.

    2.0.1latest

Version published
Maintainers
1
Yearly downloads
10,619
increased by57.6%

Weekly downloads

Readme

Source

NPM version NPM quality build status Test coverage David deps Known Vulnerabilities npm download

中文版

This lib base on node-mongodb-native, provides the official MongoDB native driver and APIs.

It wraps some frequently-used API to make it easy to use but keep all properties as it is. For example, to find a document you need this with official API

db.collection('name') .find(query, options) .skip(skip) .limit(limit) .project(project) .sort(sort) .toArray();

and with this lib

mongo.find('name', { query, skip, limit, project, sort, options });

If you are using Egg.js, please see egg-mongo-native.

Installation

npm install --save @brickyang/easy-mongodb

Configuration

Single

const config = { host: 'host', port: 'port', name: 'test', user: 'user', password: 'password', options: {}, };

Replica Set

// mongodb://host1:port1,host2:port2/name?replicaSet=test const config = { host: 'host1,host2', port: 'port1,port2', name: 'name', options: { replicaSet: 'test' }, }; // mongodb://host:port1,host:port2/name?replicaSet=test const config = { host: 'host', port: 'port1,port2', name: 'name', options: { replicaSet: 'test' }, };

Usage

The APIs provided by this lib usually need two arguments. The first is commonly the collection name, and the second is an object keeps the arguments of official API.

// TypeScript // import MongoDB from '@brickyang/easy-mongodb'; const MongoDB = require('@brickyang/easy-mongodb').default; const mongo = new MongoDB(config); // connection mongo .connect() .then(client => { // `client` is instance of connected MongoClient }) .catch(error => { // handle error }); // or mongo.on('connect', () => { // do something }); mongo.on('error', error => { // handle error }); // insert one doc const args = { doc, options }; mongo.insertOne('collection', args); // transaction const session = mongo.startTransaction(); const args = { doc, { session } }; mongo.insertOne('collection1', args); mongo.insertOne('collection2', args); session.commitTransaction();

Members

  • db: Db instance
  • client: MongoClient instance
  • featureCompatibilityVersion: Transaction need '4.0' or above

API

Until now, this plugin provides these functions:

  • connect
  • insertOne
  • insertMany
  • findOne
  • findOneAndUpdate
  • findOneAndReplace
  • findOneAndDelete
  • updateMany
  • deleteMany
  • find
  • count: 已过时
  • countDocuments
  • estimatedDocumentCount
  • distinct
  • createIndex
  • listCollection
  • createCollection
  • aggregate
  • startSession
  • startTransaction

You can always use mongo.db and mongo.client to use all official APIs. Check the APIs here: Node.js MongoDB Driver API.

Promise

function create(doc) { mongo .insertOne('name', { doc }) .then(result => console.log(result)) .catch(error => console.error(error)); }

Async/Await

async function create(doc) { try { const result = await mongo.insertOne('name', { doc }); console.log(result); } catch (error) { console.error(error); } }

If you use mongo.db you could use callback(usually the last argument), but this lib doesn't support callback because Promise and async/await are better.

License

MIT

Keywords

Socket

Product

Subscribe to our newsletter

Get open source security insights delivered straight into your inbox. Be the first to learn about new features and product updates.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc