【问题标题】:Change something in database based on基于更改数据库中的某些内容
【发布时间】:2018-01-21 20:14:26
【问题描述】:

我目前正在构建一个 Mongo、Node、Express 网络应用程序,如果交易处于“活动”状态,交易将在屏幕上呈现在列表中。但是,我想在“dealEndingDate”以编程方式将交易的“活动”状态更改为(参见下文的交易架构)。把它想象成一笔交易即将到期。有没有我可以添加的某种监听器来不断地浏览数据库并更新文档......我欢迎所有建议。谢谢!

{
    "_id": {
        "$oid": "5a63c974aa17eb49c5260815"
    },
    "dealHeadline": "Test",
    "active": true,
    "dealBeginningTime": {
        "$date": "2018-01-20T06:00:00.000Z"},
    "dealEndingTime": {
        "$date": "2018-01-22T23:45:00.000Z"}
}

【问题讨论】:

    标签: node.js database mongodb express mongoose


    【解决方案1】:

    cronjob 可以成为您的解决方案。

    【讨论】:

    【解决方案2】:

    另一种方法是使用expires,即dealEndingTime: { type: Date, expires: '60s' }。请注意,这将在设置日期后 60 秒删除整个 document。如果您仍想保留document,您可以设置一个单独的Deal 集合,其中存储了您的所有交易。然后您可以使用ObjectId 引用每个document 的交易:deals: [{_id: { type: Schema.Types.ObjectId, ref: 'deal' } 然后只需检查array 的长度即可显示该document 是否有任何有效交易。

    希望对你有用!

    【讨论】:

      猜你喜欢
      • 2021-01-13
      • 2018-10-15
      • 2018-02-04
      • 1970-01-01
      • 2020-10-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多