Skip to content

Provides mongoose support for dates only, typically to avoid timezone issues.

License

Notifications You must be signed in to change notification settings

netslayer/mongoose-dateonly

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

About

This is an implementation of the DateOnly library that works with Mongoose. This allows you to save dates in Mongo without having to worry about time zones shifting the date.

Usage

var mongoose = require('mongoose');
var DateOnly = require('mongoose-dateonly')(mongoose);

var PersonSchema = {
  birthday: DateOnly
};

...

var p1 = new Person({ birthday: '4/7/1995' });
var p2 = new Person({ birthday: new Date('4/7/1995') });
var p3 = new Person({ birthday: new DateOnly('4/7/1995') });

In Mongo, the values above would all be stored as 19950307. Because they're not stored as conventional Date objects, they are not subject to time zone shifts. In other words, no matter what time zone a user is in, this date will always be 4/7/1995.

The DateOnly data type supports all of the query conditions you would expect it to:

Person.find({ birthday: '4/7/1995' });
Person.find({ birthday: { $lt: Date.now() } });
Person.find({ birthday: { $in: [ '1/1/2000', new Date('1/1/2010'), new DateOnly()]}})

For full implementation details on the DateOnly data type, please see the documentation on the DateOnly GitHub repo.

Test

npm test

About

Provides mongoose support for dates only, typically to avoid timezone issues.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 100.0%