Node js 和 mongoose 模式 date.now 代码无法正常工作

Tom*_*ius 6 mongodb node.js

我为用户注册创建了这个架构:

let userSchema = new mongoose.Schema({
    lname: String,
    fname: String,
    username: String,
    email: String,
    password: String,
    registrationDate: {
        type: Date,
        default: Date.now()
    },
    referedBy: {
        type: String,
        default: ''
    },
    referalEnd: {
        type: Date,
        default: Date.now() + 5*365*24*60*60*1000
    },
    userRefererId: {
        type: String,
        default: uniqid()
    }
});
Run Code Online (Sandbox Code Playgroud)

如您所见,模式中有一个Date.now函数和uniqid函数。

这些函数大约每 5 分钟使用一次,因为如果我创建两个相隔几秒钟的用户,它会生成相同的 uniqid 并显示相同的日期。

我的 MongoDB 集合的图像

ats*_*nam 12

从中删除 ()Date.now()并调用Date.now.


小智 4

我以前遇到过这个问题,架构是在部署/启动时生成的,并且不会在每次新创建时重新生成,因此时间总是相同的。最好在new Model().save()通话之外生成日期/时间。