我正在使用nodejs和mongodb进行一个项目,我正在使用mongoose。在我的数据库中,我存储了公司的营业时间和关闭时间。我还有一个字段isOpen
是一个布尔值,我想知道是否可以根据当前日期和公司的营业时间动态更改mongodb中isOpen
的值。
{
openingHours {
opens: Number,
closes: Number
},
isOpen: Boolean // should depend on the current date and openinghours
}
注:我看到有可能把一个函数放在
required
字段上。 最佳答案
您可以使用虚拟属性来获取该功能。
var storeSchema = new Schema({
openingHours {
opens: Number,
closes: Number
},
});
storeSchema.virtual('isOpen').get(function () {
const currentTime = Date.now();
const currentHour = currentTime.getHours();
return this.openingHours.opens >= currentHour && currentHour < this.openingHours.closes;
});
有关虚拟财产的更多信息,请参见official documentation。