我目前正在构建一个Mongo,Node,Express网络应用程序,如果它们处于“活动状态”,则会在屏幕上以列表形式显示交易。但是,我想在“dealEndingDate”中以编程方式将交易的“活跃”状态更改为(参见下面的dealSchema)。可以把它想象成交易即将到期。是否有某种类型的监听器我可以添加到不断的troll数据库并更新文档...我欢迎所有的建议。谢谢!
{
"_id": {
"$oid": "5a63c974aa17eb49c5260815"
},
"dealHeadline": "Test",
"active": true,
"dealBeginningTime": {
"$date": "2018-01-20T06:00:00.000Z"},
"dealEndingTime": {
"$date": "2018-01-22T23:45:00.000Z"}
}
答案 0 :(得分:1)
cronjob可以为您提供解决方案。
答案 1 :(得分:1)
另一种方法是使用expires
,即dealEndingTime: { type: Date, expires: '60s' }
。请注意,这将在设置日期后删除整个document
60秒。如果您仍想保留document
,则可以设置单独的Deal
集合,其中存储您的所有交易。然后,您可以使用document
ObjectId
来引用每个deals: [{_id: { type: Schema.Types.ObjectId, ref: 'deal' }
的交易。然后只需检查array
的长度即可显示该document
是否有任何有效交易{{ 1}}。
我希望这对你有用!