我们的想法是将一个看起来像这样的对象推送到一个名为likes
的字段中,这是一个数组:
{
movieId: "VgtyvjVUAjf8ya",
information: {
genre: "Action",
length: "160",
language: "English"
}
}
我以为会这样做:
Meteor.users.update({_id: Meteor.userId()}, {$push: {likes: {movieId: movieId, information: informationObj}}})
但要么是错误的,要么SimpleSchema的验证有一些问题(尽管它并没有抱怨),因为我得到的只是一个数组中的空对象!不,这些价值观本身并没有错,我已经检查过了。
相关字段的SimpleSchema如下所示:
likes: {
type: [Object],
optional: true
}
我已经尝试过阅读文档,但我并不真正理解错误。有人知道吗?
答案 0 :(得分:7)
如果您不想验证被推入likes
属性的对象,可以在架构中将blackbox
设置为true
,如下所示:
likes: {
type: [Object],
optional: true,
blackbox: true
}
这将允许您将任何想要的东西放入“喜欢”的对象中。
如果你想验证“喜欢”的对象,那么你需要创建一些额外的模式,如下所示:
var likeInfoSchema = new SimpleSchema({
genre: {
type: String
},
length: {
type: String
},
language: {
type: String
}
});
var likeSchema = new SimpleSchema({
movieId: {
type: String
},
information: {
type: likeInfoSchema
}
});
Meteor.users.attachSchema(new SimpleSchema({
// ...
likes: {
type: [likeSchema]
}
}));