我正在使用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

07-24 21:12