猫鼬条件字段值

时间:2019-03-22 09:23:43

标签: node.js mongodb mongoose

我正在使用NodeJS和MongoDB进行项目,并且正在使用Mongoose。在我的数据库中,我存储着营业时间和营业时间的公司。我还有一个isOpen字段,它是一个布尔值,我想知道是否有可能根据当前日期和公司的营业时间动态更改mongoDB中isOpen的值。

{
    openingHours {
        opens: Number,
        closes: Number
    },
    isOpen: Boolean // should depend on the current date and openinghours
}

PS:我看到可以在字段required上放置一个函数。

1 个答案:

答案 0 :(得分:1)

您可以使用虚拟属性来获取该功能。

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中找到有关虚拟财产的更多信息。