创建包含对象数组的猫鼬模式
Posted
技术标签:
【中文标题】创建包含对象数组的猫鼬模式【英文标题】:Creating mongoose schema that contains array of Objects 【发布时间】:2019-02-20 12:46:29 【问题描述】:如何创建具有以下结构的猫鼬模式
data:
name: "John doe",
attributes: [
text: "Sample text",
created_at: "2018-08-23"
,
text: "Sample text 2",
created_at: "2018-08-23"
],
created_at: "2018-08-23"
【问题讨论】:
【参考方案1】:这可以简单地使用对象数组来完成,而不是创建新模式。我不知道优化是否有一些影响。
attributes: [
text: String,
created_at: Date
],
这是遵循 Mongoose 官方文档的。
【讨论】:
【参考方案2】:你可以试试这个
const sampleSchema = new mongoose.Schema(
data:
type: dataSchema
);
const dataSchema = new mongoose.Schema(
name: String,
attributes: [attributeSchema],
created_at: Date
);
const attributeSchema = new mongoose.Schema(
text: String,
created_at: Date
);
【讨论】:
试过了,但是 created_at 没有反映 根据您的要求更改类型。你可以使用Date.now()
根据 Mongoose 文档,mongoose 有一个时间戳属性,可以自动生成时间戳mongoosejs.com/docs/guide.html#timestamps。我的问题是时间戳被应用到主对象而不是对象数组。
我错过了 dataSchema
中的一个属性。我已经更新了sn-p。立即尝试 sn-p。以上是关于创建包含对象数组的猫鼬模式的主要内容,如果未能解决你的问题,请参考以下文章
如何将日期格式从对象的猫鼬数组更改为 ejs 视图上的字符串?