【问题标题】:Insert date only (not time) in mongodb using mongoose使用 mongoose 在 mongodb 中仅插入日期(不是时间)
【发布时间】:2018-05-14 08:32:54
【问题描述】:

我正在尝试插入具有当前日期的文档。

到目前为止我所做的都在这里:

查询

const collectionSchema = new Schema({
    date: new Date()
});

const data = mongoose.model('data', collectionSchema);

当我尝试将数据插入 mongodb 时,数据会以date & time GMT 格式插入。

但我想要的是,仅插入日期 (dd/mm/yyyy) 而不是日期和时间 GMT (Date Wed Nov 10 2021 12:15:30 GMT+0400) 格式。

如何用最少的代码实现?

【问题讨论】:

  • 如果在插入时未定义,您是否要默认插入当前日期,或者您是在询问如何更新/插入具有特定日期的文档?
  • 是的,但只有日期而不是时间。
  • @PradipDhakal 检查我的答案 :)

标签: node.js mongodb mongoose


【解决方案1】:

一种使用 mongoose npm 包仅添加日期的方法,作为参考,您可以使用 URL 检查它,

https://www.npmjs.com/package/mongoose-dateonly

另一种方式是你可以使用 moment ,你可以使用 as ,

date.toDateString()
date.toUTCString()

希望这会对你有所帮助。

【讨论】:

  • 欢迎......@PradipDhakal
【解决方案2】:

将您的架构更改为:

const collectionSchema = new Schema({
     date: {
         type: Date,
         default: new Date()
     }
})

因此,每当创建新集合时,都会自动输入日期。

【讨论】:

  • 没有人。它像这样插入`$date:2017-11-30T14:41:12.337Z`但我想要这样:`$date:2017-11-30`
  • 好吧,如果您说您可能不知道 Date 在 javascript 中是如何工作的,那么您使用的是 mlab 的编辑器,它显示 $date 并对其进行解析。它实际上插入了这样的内容:1512066177433,您可以使用它轻松获取日期。
  • @PradipDhakal 我使用了一个很棒的库,称为 moment.js,试试吧,如果你喜欢,请点赞! momentjs.com
猜你喜欢
  • 2016-01-21
  • 1970-01-01
  • 2014-09-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-03-12
  • 1970-01-01
相关资源
最近更新 更多