【问题标题】:How can I set Mongoose document field to current date in Node.js如何在 Node.js 中将 Mongoose 文档字段设置为当前日期
【发布时间】:2021-02-24 00:27:22
【问题描述】:

我有一个如下所示的 MongoDB 架构:

const UserSchema = new mongoose.Schema({
    _id: { type: mongoose.Schema.Types.ObjectId, ref: 'User' }
    meetings: [
        {
            actions: [         
                {
                    item: String,    //"meeting 1", "meeting 2", etc   
                    status: String,  //"complete", "todo"
                    completed: Date
                }
            ]
        }
    ]
}, {collection: 'user'});

当我收到方法调用时,如何在 Node.js 中设置日期?更具体地说,当我的函数被调用时,将给出一个用户_id 和一个action.item。我需要使用用户_idaction.item 来定位Mongoose 用户文档,然后将相应的操作status 设置为"complete"complete 到Node.js 中的当前日期。如何设置日期?

【问题讨论】:

    标签: node.js mongodb mongoose


    【解决方案1】:

    我不确定这是否是您要查找的内容,但如果您想设置 default 创建 model 的日期,您可以像这样向模型提供 default

    actions: [         
                {
                   item: String,    //"meeting 1", "meeting 2", etc   
                   status: String,  //"complete", "todo"
                   completed: {type: Date, default: Date.now}
                 }
              ]
    

    当模型被调用时,这将 default 当前 Date

    【讨论】:

    • 您好,模型已经设置好了。我正在尝试修改模型并混淆如何将日期设置为称为时间的函数。我收到错误 Type '{ type: DateConstructor; default: () => number; }' is not assignable to type 'Date'. Object literal may only specify known properties, and 'type' does not exist in type 'Date'.ts(2322) using completed: {type: Date, default: Date.now}
    【解决方案2】:

    在您的 post 请求中,在调用 save() 方法之前,请使用

    const date = Date.now();
    

    所以在你需要的地方使用req.body,日期只需使用我之前写的一行。 您也可以将其存储为字符串。将模型上的 type 更改为 string 并在发布请求中写入:

    const date = Date.now().toISOString();
    

    【讨论】:

      猜你喜欢
      • 2013-04-15
      • 1970-01-01
      • 2012-12-21
      • 2016-09-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-08
      • 2014-03-27
      相关资源
      最近更新 更多