@codecraftkit/mongo

0.0.13 • Public • Published

cc-mongo

Instaling

npm install --save cc-mongo

How To use

const Mongoose = require('mongoose').Mongoose;
const ModelHandler = require('cc-mongo');
const db = new Mongoose();
db.connect('http://localhost:27017/meteor', { useNewUrlParser: true, useFindAndModify: false }).catch(console.error);

// In our Model Definition
const collectionName = 'user';
const userSchema = new db.Schema({
  _id: { type: String, required: true },
  name: { type: String },
  status: { type: Boolean },
  isRemove: { type: Boolean, default: false },
  createdAt: { type: Date, default: Date.now },
  updatedAt: { type: Date, default: Date.now }
}, {
  collection: collectionName
});

//here we use mongo handler
const User = ModelHandler(db, collectionName, userSchema);

module.exports = User;

Available Methods

Methods Params Return
insert model, session model
update props, session model
remove/hide props, session model
delete _id, session model
insert(model, session):
  • model: the new model to insert into the collection.
  • session | optional: tbd.
update(props, session)
  • props | object:
    • model: the object with new changes.
    • selector | optional: thq condition to the update query. By default: { _id: model._id }.
    • options | optional: to use as option on mongoose updateOne method.
remove(props, session) / hide(props, session) [soft delete]
  • props | object: this method is a direct access to update.
    • model: the object with new changes.
    • selector | optional: thq condition to the update query. By default: { _id: model._id }.
    • options | optional: to use as option on mongoose updateOne method.
  • Before update call, model is manipulated with properties below:
    • updatedAt: new Date()
    • removedAt: new Date()
    • isRemove: true
delete(_id, session) [hard delete]
  • _id: model id to delete

Package Sidebar

Install

npm i @codecraftkit/mongo

Weekly Downloads

0

Version

0.0.13

License

ISC

Unpacked Size

6.01 kB

Total Files

5

Last publish

Collaborators

  • cc-dev04
  • development.fino