【发布时间】:2020-04-15 10:37:42
【问题描述】:
mongoose 创建文档时,我正在节省时间戳。
我的问题是时间戳没有正确更改。
每当我保存文档时,createdAt 都会返回服务器启动的时刻。
mongoose模型节省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) 在猫鼬的create 之前显式分配createdAt 属性会更好吗?比如下面的代码就比上面的好?
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 {
...
}
}
【问题讨论】:
-
我还需要控制默认功能,找到this documentation。在下面的答案中为任何在默认功能中寻找更多功能的人发表评论。
标签: javascript mongoose mongoose-schema