我对 meteor 相当陌生,并尝试使用使用嵌入式模式的模型插入到集合中。嵌入式架构中的内容未插入到数据库中,而是空条目。
主模型正在附加到集合中。
Guests = new Mongo.Collection('guests');
Schema = {}
Guests.attachSchema(new SimpleSchema({
BasicInformation : {
type: Schema.basicInfo,
optional: false,
},
})
基本信息架构定义如下。
Schema.basicInfo = new SimpleSchema({
firstName: {
type: String,
},
middleName: {
type: String,
},
lastName: {
type: String,
}
})
我正在使用它插入到一个通用 js 文件的集合中。
Guests.insert({
BasicInformation: {
firstName: 'First Name',
middleName: 'Middle Name',
lastName: 'Last Name'
},
})
如果我删除架构并在主模型中添加字段而不是使用嵌入式架构,那么它确实会入。不知道怎么回事...帮助!
欢迎来到堆栈溢出。而且,正如@Jankapunkt所说,请将您的代码作为格式化块放入您的问题中。如果图像被删除,指向其他位置托管的图片的链接可能不起作用。对于我们来说,修复您的代码并向您展示它应该是什么样子也更容易。
我认为在您设置架构时,架构对象是空的。您稍后向其添加信息,但此时为时已晚。如果你把代码放在你的问题中,我可以告诉你如何,但我不愿意为你重新输入。
更新: 干得好。在将架构对象附加到表之前,需要填充该对象:
Guests = new Mongo.Collection('guests');
Schema = {} // Right now the object is empty
Schema.basicInfo = new SimpleSchema({ // So we add the sub-schema
firstName: {
type: String,
},
middleName: {
type: String,
},
lastName: {
type: String,
}
})
Guests.attachSchema(new SimpleSchema({
BasicInformation : {
type: Schema.basicInfo, // previously this was undef, now it is correct
optional: false,
},
})
这应该对你有用。