我有一个帖子模型,我想让用户“#34;申请"至。因此,我使用 aldeed collections 2 创建了一个应用程序模型,如下所示:
applications = new Mongo.Collection('applications');
applications.attachSchema(
new SimpleSchema({
post: {
type: String,
autoValue: function() {
if (this.isInsert) {
return post._id;
} else if (this.isUpsert) {
return {$setOnInsert: post._id};
} else {
this.unset();
}
}
},
name: {
type: String,
autoValue: function() {
if (this.isInsert) {
return Meteor.userId();
} else if (this.isUpsert) {
return {$setOnInsert: Meteor.userId()};
} else {
this.unset();
}
}
},
bio: {
type:String
}
})
);
基本上,我需要每个应用程序属于"属于"正在应用的帖子以及创建该应用程序的用户。我认为在Meteor中最简单的方法是将post
值设置为等于postId。但是我如何在Meteor中做到这一点?有没有更好的办法?我来自Rails背景。
P.S。我也使用IronRouter。
答案 0 :(得分:1)
提供的代码似乎过于复杂,我更愿意使用以下Schema:
applications.attachSchema(
new SimpleSchema({
post: {
type: String,
},
name: {
type: String,
},
bio: {
type: String
}
})
);
然后使用以下内容将新项添加到集合中:
var postID = posts.insert({}); // some code that inserts posts
applications.insert({post: postId, name: Meteor.userId(), bio: ''})
此外,当您使用面向文档的数据库Mongo
时,您可能希望将所有相关文档合并到一个文档中,而不是像application
一样存储单独集合的ID,就像使用关系一样面向数据库。