猫鼬创建文档时,我正在节省时间戳。
我的问题是timeStamp没有正确更改。
每当我保存文档时,createdAt
都会返回服务器启动的时刻。
猫鼬模型可节省timeStamp(使用createdAt
属性)
import { Schema, model } from 'mongoose';
import moment from 'moment-timezone';
const requestSchema = new Schema({
createdAt: {
type: String,
default: moment
.tz(new Date(), 'Asia/Seoul')
.format('YYYY-MM-DD HH:mm:ss'),
},
...
})
我正在使用如下功能创建mongodb文档
export const returnRecordObject = async (arg) => {
const recordObject = { type: 'record' }
const savedRecord = await models.Request.create(recordObject);
if(savedRecord) {
return savedRecord;
} else {
...
}
}
似乎在每次new Date()
的猫鼬调用中都不调用create
。
我对猫鼬不那么熟悉,所以我找不到任何API。
总结
1)如何使猫鼬的默认设置在每次create
或其他函数调用时进行更新?
2)在createdAt
猫鼬之前显式分配create
属性会更好吗?例如,下面的代码比上面的代码好?
import { Schema, model } from 'mongoose';
const requestSchema = new Schema({
// Remove createdAt property
...
})
export const returnRecordObject = async (arg) => {
const recordObject = { type: 'record', createdAt: moment
.tz(new Date(), 'Asia/Seoul')
.format('YYYY-MM-DD HH:mm:ss')}
const savedRecord = await models.Request.create(recordObject);
if(savedRecord) {
return savedRecord;
} else {
...
}
}
答案 0 :(得分:1)
您向mss
传递了一个值,这意味着在运行此代码行时默认值为default
。要使其按预期工作,您需要传递一个返回moment.tz(new Date(), 'Asia/Seoul').format('YYYY-MM-DD HH:mm:ss')
的函数。像这样:
moment.tz(new Date(), 'Asia/Seoul').format('YYYY-MM-DD HH:mm:ss')
您可以阅读更多内容:here