基于改变数据库中的内容

时间:2018-01-21 00:35:42

标签: node.js database mongodb express mongoose

我目前正在构建一个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"}
}

2 个答案:

答案 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}}。

我希望这对你有用!