![](/img/trans.png)
[英]Mongoose Schema type as a custom interface from TypeScript?
[英]Mongoose custom schema type date interval
我的日期間隔類型的文檔中有很多字段,例如
{
publishDate:
{
start: {type: Date, required: true},
end: {type: Date, required: true}
}
}
為了減少代碼重復並使其易於維護,如何創建包含兩個字段的自定義Mongoose類型(例如DateInterval) :
並包含確保兩個字段均已填寫且開始於結束之前的驗證器?
您可以在貓鼬中重用架構。
var DateIntervalSchema = new Schema({
start: {type: Date, required: true},
end: {type: Date, required: true}
});
var SomeSchema = new Schema({
publishDate: [DateIntervalSchema],
// ... etc
});
您還可以參考其他館藏中的文檔。
var SomeSchema = new Schema({
publishDate: {type: Schema.ObjectId, ref: 'DateInterval'}
});
//using populate
SomeModel.findOne({ someField: "value" })
.populate('publishDate') // <--
.exec(function (err, doc) {
if (err) ...
})
您將要開發自定義架構類型。 已經有許多插件可以執行此操作,其中很多可以在這里找到: https : //github.com/aheckmann/mongoose-long/blob/master/lib/index.js 。 這是一個很好的基本示例。
然后,出於您的目的,您可以創建一個DateInterval
自定義架構,將其強制轉換為Date
類型,然后使用validator
檢查start
和end
-http://mongoosejs.com/docs/api.html#schematype_SchemaType-validate 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.