关于如何使用Mongoose在MongoDB中存储年龄和其他时间派生数据的建议



我正在尝试将我的用户age存储在MongoDB上,我想动态计算用户的age,并在可能的情况下自主更新。

我想到了两种方法,一种是存储日期,在查询时使用今天的日期作为参考并找到差异,但问题是age不会在MongoDB中的模式上更新,我该如何解决这个问题?

另一种是为API设置挂钩,并触发该API更新细节。

我的模式看起来是这样的,尽管我正在计算保存时的年龄,它不会在需要时更新。此外,将今天的日期作为参考也会影响我们的分析。

dateOfBirth: Date,
age: Number

您可以在使用聚合框架进行查询时存储为DOB和项目年龄

db.getCollection('callmodels').aggregate([{
$project: {
name : 1,
email: 1,
age: {$trunc:{$divide: [ {$subtract: [new Date(), '$dob']},1000 * 60 * 60 * 24* 365]}}}
}
])

相关内容

最新更新