hardy
hardy

Reputation: 901

set only time in mongoose schema

How to set only time in mongoose schema ? like we can do in sequelize schema

 startTime: DataTypes.TIME,
    endTime: DataTypes.TIME

is their any way in mongoose to set time in mongoose schema??

Upvotes: 0

Views: 7261

Answers (3)

TGrif
TGrif

Reputation: 5921

I'm afraid there is no mongoose schema type to store a time like you can do in SQL.

I have stored a time as a Date in one of my project, keeping just the time part of that date. It works more or less. And maybe MongoDB $hour and $minute aggregation can help.
But it is not a very elegant solution.

Another possibility is to store your time as separate Number (hours, minutes, seconds).

Best method I found so far is to store it as a String, as mentioned in this answer.

Maybe you can go further into this idea and create your own custom schema Time type.

Upvotes: 0

Recap
Recap

Reputation: 178

I've tried achieving the same thing before but failed.

The best solution that was I able to come up with was to just add the time during the insert to the database and not when creating the schema.

This way you can use datetime.toLocaleTimeString(); or moment.js to just add the time without the date etc.

Upvotes: 0

itsundefined
itsundefined

Reputation: 1450

It's simple Date and nothing else like this --> startTime : Date

Here is the documentation for all available data types for mongoose: http://mongoosejs.com/docs/schematypes.html

In case you only require the time of the date you can use a getters to achieve that: http://mongoosejs.com/docs/2.7.x/docs/getters-setters.html

Upvotes: 2

Related Questions