Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 如何使用mongoose nodejs在mongdb中以dd/mm/yy格式从at保存日期_Node.js_Mongodb_Mongoose - Fatal编程技术网

Node.js 如何使用mongoose nodejs在mongdb中以dd/mm/yy格式从at保存日期

Node.js 如何使用mongoose nodejs在mongdb中以dd/mm/yy格式从at保存日期,node.js,mongodb,mongoose,Node.js,Mongodb,Mongoose,我喜欢在每次请求时将当前日期保存到db中,但我得到的时间戳为ISODate(“2020-01-31T10:20:46.000Z”)我只想将31-01-2020保存到db中以实现某些功能。我该怎么做 可以先将字段类型设置为字符串。然后创建该字符串(比如,使用momentjs)并保存它 // Schema { ... timestamp: String, ... } // Code cons timestamp = moment(date).format('MM-DD-YYYY')

我喜欢在每次请求时将当前日期保存到db中,但我得到的时间戳为
ISODate(“2020-01-31T10:20:46.000Z”)
我只想将31-01-2020保存到db中以实现某些功能。我该怎么做

可以先将字段类型设置为字符串。然后创建该字符串(比如,使用
momentjs
)并保存它

// Schema

{
  ...
  timestamp: String,
  ...
}

// Code

cons timestamp = moment(date).format('MM-DD-YYYY');
// now save it...
一个更好的解决方案是OP建议的,使用
save
hook。提供的
时间戳
字段类型为
字符串

const moment = require('moment');

// ...

mySchema.pre('save', function(next) {
  this.timestamp = moment(this.timestamp).format('MM-DD-YYYY');
  next();
});

newTaskShema.pre('save',function(next){this.timestamp=moment(date).format('MM-DD-yyyyy');next();})我试过这样做,但不起作用。如果moment未定义,您是否按照我的建议将字段类型设置为string?另外,您是否有可能忘记在钩子的末尾调用
next()
?您必须定义moment,这意味着通过
npm install moment
首先安装它,并且在您的代码中
const moment=require('moment'))
让我检查一下。我认为它是一个类似日期的函数。现在将其替换为
this.timestamp
。您应该将日期值存储为适当的
日期对象,而不是字符串。这将为您的将来节省很多麻烦,例如,使用
Date
对象比使用字符串更容易排序、操作和输出格式。