Mongoose-如何在过去两周中获取数据变化



假设我有一本书模式。它几乎没有字段。

const Book = new schema({
  title: String,
  content: String,
  like: Number
});

如何获得过去2周中最喜欢的书?最多,它需要每天更新。

例如,假设我过去两天只需要喜欢。 5 人们完全喜欢这本书, 7 人们喜欢第2天的书, 3 People tay3。因此,我希望第2天上的12个赞(5 7)和在第3天(7 3)

上的10个赞

我打算添加一个字段和14个元素数组。

{
  ...,
  likeCnt: {
    type: Array,
    default: Array(14).fill(0)
  }
}

因此,只有在某人喜欢这本书时才更新Date().getDate() % 14元素。

但是,我每天都需要使用cron-job对每本书的likeCnt[]归零。请告诉我一个更有效的解决方案。

非常感谢。

我将创建一个新数组,我将保留数据发生的每一个更改的日期。

{
  ...,
  likes: [Date],
}

然后请求以这种方式进行最后两个星期更改:

collection.find({
  likes: {
    $gte: Date.now() - 1209600000,
  },
});

这个吸引人即使在两个星期之后也会使您保留数据。

您可以定期将它们删除,也可以保留并允许您以后更改功能。如果下个月您需要3周的数据怎么办?始终认为通用和演变。

最新更新