Mongoose 사용만 생성됨타임스탬프
mongoose에 다음 메시지 스키마가 있습니다.
var messageSchema = mongoose.Schema({
userID: { type: ObjectId, required: true, ref: 'User' },
text: { type: String, required: true }
},
{
timestamps: true
});
업데이트된 At 타임스탬프를 무시할 방법이 있습니까?메시지가 업데이트되지 않아 업데이트At가 공간을 낭비합니다.
Mongoose v5는 다음을 수행하는 것이 더 나을 수 있습니다.
const schema = new Schema({
// Your schema...
}, {
timestamps: { createdAt: true, updatedAt: false }
})
편집 @Johnny에 따라 기본값을 사용하는 더 나은 옵션을 반영하도록 답변을 수정했습니다.홍콩
다음을 선언하여 직접 처리할 수 있습니다.createdAt
스키마에서 (또는 원하는 이름으로):
mongoose.Schema({
created: { type: Date, default: Date.now }
...
또는 사전 저장 후크에서 새 문서의 값을 업데이트할 수도 있습니다.
messageSchema.pre('save', function (next) {
if (!this.created) this.created = new Date;
next();
})
이 행을 따라 문서가 새 것인지 확인하는 데 사용할 수 있는 새로 만들기 플래그도 있습니다.
messageSchema.pre('save', function (next) {
if (this.isNew) this.created = new Date;
next();
})
이전 항목이지만 스키마에 따라 더 나은 옵션이 있을 수 있습니다.mongodb/mongoose auto-gen_id 기본값을 고수하는 경우 이미 타임스탬프가 내장되어 있습니다."업데이트"가 아닌 "작성"만 하면 되는 경우에는...
문서._id.타임스탬프 가져오기();
여기 MongoDB 문서에서...ObjectId.get 타임스탬프()
그리고 여기...스택 오버플로
Mongoose 타임스탬프 인터페이스에는 다음과 같은 선택적 필드가 있습니다.
interface SchemaTimestampsConfig {
createdAt?: boolean | string;
updatedAt?: boolean | string;
currentTime?: () => (Date | number);
}
원하는 필드에 대한 부울 값을 전달할 수 있습니다(createdAt: true
그리고.updatedAt: true
두 필드를 모두 추가합니다.현재 시간 함수를 사용하여 날짜 형식을 덮어쓸 수 있습니다.
예:
import mongoose from 'mongoose';
const { Schema } = mongoose;
const annotationType = ['NOTES', 'COMMENTS'];
const referenceType = ['TASKS', 'NOTES'];
const AnnotationSchema = new Schema(
{
sellerOrgId: {
type: String,
required: true,
},
createdById: {
type: String,
required: true,
},
annotationType: {
type: String,
enum: annotationType,
},
reference: {
id: { type: String, index: true },
type: {
type: String,
enum: referenceType,
},
},
data: Schema.Types.Mixed,
},
{ timestamps: { createdAt: true },
);
const AnnotationModel = mongoose.models.annotation || mongoose.model('annotation', AnnotationSchema);
export { AnnotationModel, AnnotationSchema };
언급URL : https://stackoverflow.com/questions/38905633/mongoose-use-only-createdat-timestamp
'bestsource' 카테고리의 다른 글
아이폰이나 안드로이드에서 HTML5가 있는 네이티브 풀스크린 비디오 플레이어를 피할 수 있습니까? (0) | 2023.07.13 |
---|---|
지정된 날짜에서 월의 마지막 날을 얻는 방법은 무엇입니까? (0) | 2023.07.13 |
JQuery를 사용하여 이메일 주소를 확인하려면 어떻게 해야 합니까? (0) | 2023.07.13 |
발그랜드에게 memcheck 분기된 프로세스를 어떻게 알려줍니까? (0) | 2023.07.13 |
rest와 함께 부울 값을 반환하는 방법은 무엇입니까? (0) | 2023.07.08 |