@william341/mongoose-nanoid

1.0.5 • Public • Published

mongoose-nanoid

Custom Id plugin for Mongoose using nanoid

Installation

npm install --save mongoose-nanoid

Usage

const mongoose = require('mongoose');
mongoose.plugin(require('mongoose-nanoid'), size) // custom size. see nanoid for more details

// or opt out for schemas
const plugin = ;
var UserSchema = new Schema({
    username: String,
    address : new Schema({
        street: String,
        City: String
    }, {_id: false})
});
UserSchema.plugin(require('mongoose-nanoid')); // default size = 12
const User = mongoose.model('User', UserSchema);

For references, use type: String

var ImageSchema = new Schema({
    user: {
      type: String,
      ref: 'User'
    },
    name: String
});

Now the _id will be generated using nanoid.

const user = new User({username: 'Prince'});
user.save(function (err) {
    console.log(user._id); // Should be generated by nanoid(size)
});

Issues

There is a possibility of duplication of id with small size, but this library makes sure that _id stays unique by first validating and then inserting.

References

nanoid : https://github.com/ai/nanoid

Package Sidebar

Install

npm i @william341/mongoose-nanoid

Weekly Downloads

1

Version

1.0.5

License

MIT

Unpacked Size

8.31 kB

Total Files

6

Last publish

Collaborators

  • william341