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

时间:2018-11-15 08:25:26

标签: node.js mongodb mongoose

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

我正在考虑两种方法,一种是存储日期,并在查询时使用今天的日期作为参考并找出不同之处,但这是问题age不会在{ {1}},我该如何解决?

另一种方法是为MongoDB设置一个钩子,并触发API来更新详细信息。

我的架构看起来像这样,尽管我正在计算保存时的年龄,但不会在需要时进行更新。同样,正如今天所说的那样,这也会影响我们的分析。

API

1 个答案:

答案 0 :(得分:1)

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

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