Skip to content

Adds createdAt and updatedAt date attributes that get auto-assigned to the most recent create/update timestamp. Forked from https://github.com/drudge/mongoose-timestamp.

License

Notifications You must be signed in to change notification settings

abhijitborade/mongoose-timestamp2

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

This package is deprecated. Please use Mongoose's built-in timestamps option within schema definitions instead.

Deprecation Notice

This package is no longer maintained. Mongoose now includes a built-in timestamps option that provides similar functionality. Please update your schemas to use the native timestamps option as shown below:

Example

const mongoose = require('mongoose');

const mySchema = new mongoose.Schema({
  // your schema fields
}, { timestamps: true });

const MyModel = mongoose.model('MyModel', mySchema);

Mongoose Timestamps

Simple plugin for Mongoose which adds createdAt and updatedAt date attributes that get auto-assigned to the most recent create/update timestamp. This is forked from Mongoose Timestamps. Published as a separate npm package since dependencies were outdated and its been so long pull requests are waiting to be merged.

Installation

npm install mongoose-timestamp2

Usage

var timestamps = require('mongoose-timestamp2');
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);
});

Conflict for createdAt and __v when doing update or findOneAndUpdate (mongoose 5.X)

Fixed conflict for createdAt and __v when doing update or findOneAndUpdate. MongoError: Updating the path 'createdAt' would create a conflict at 'createdAt'.

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: 'created_at',
  updatedAt: 'updated_at'
});

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

About

Adds createdAt and updatedAt date attributes that get auto-assigned to the most recent create/update timestamp. Forked from https://github.com/drudge/mongoose-timestamp.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published