timestamp-mongoose

    0.0.2 • Public • Published

    Mongoose Timestamps Plugin

    Build Status Dependency Status devDependency Status Downloads Monthly Downloads Total

    Simple plugin for Mongoose which adds createdAt and updatedAt date attributes that get auto-assigned to the most recent create/update timestamp.

    Installation

    npm install timestamp-mongoose

    Usage

    var timestamps = require('timestamp-mongoose');
    var UserSchema = new Schema({
        username: String
    });
    UserSchema.plugin(timestamps);
    mongoose.model('User', UserSchema);
    var User = mongoose.model('User', UserSchema)

    The User model will now have createdAt and updatedAt properties, which get automatically generated and updated when you save your document.

    var user = new User({username: 'Prince'});
    user.save(function (err) {
      console.log(user.createdAt); // Should be approximately now
      console.log(user.createdAt === user.updatedAt); // true
      // Wait 1 second and then update the user
      setTimeout( function () {
        user.username = 'Symbol';
        user.save( function (err) {
          console.log(user.updatedAt); // Should be approximately createdAt + 1 second
          console.log(user.createdAt < user.updatedAt); // true
        });
      }, 1000);
    });

    findOneAndModify (mongoose >= 4.0.1)

    Mongoose 4.0.1 added support for findOneAndModify hooks. You must the mongoose promise exec for the hooks to work as mongoose uses mquery when a callback is passed and the hook system is bypassed.

    User.findOneAndUpdate({username: 'Prince'}, { password: 'goatcheese' }, { new: true, upsert: true })
                .exec(function (err, updated) {
                    console.log(user.updatedAt); // Should be approximately createdAt + 1 second
                    console.log(user.createdAt < user.updatedAt); // true
                });

    You can specify custom property names by passing them in as options like this:

    mongoose.plugin(timestamps,  {
      createdAt: 'createdAt',
      updatedAt: 'updatedAt'
    });

    Any model's updatedAt attribute can be updated to the current time using touch().

    Install

    npm i timestamp-mongoose

    DownloadsWeekly Downloads

    40

    Version

    0.0.2

    License

    MIT

    Unpacked Size

    25 kB

    Total Files

    13

    Last publish

    Collaborators

    • tauseefnaqvi