使用 Collection2 在 Meteor 中插入空白的嵌入式架构



我对 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,
},
})

这应该对你有用。

最新更新