mongoose中skema设计问题
发布于 11 小时前 作者 bigtotorouk 74 次浏览 来自 问答

一些社交app的设计中, 比如我的uer设计是这样的 var UserSchema = new Schema({ name: { type: String}, pass: { type: String }, nicker: { type: String}, //… posts : [{ type: Schema.Types.ObjectId, ref: ‘Post’ }], posts_num : { type: Number, default: 0 }, follow : [{ type: Schema.Types.ObjectId, ref: ‘User’ }], follow_num: { type: Number, default: 0 }, followed : [{ type: Schema.Types.ObjectId, ref: ‘User’ }], followed_num: { type: Number, default: 0 }, },{ timestamps: true }); 这个双关联关设计, 当写关注一个人接口的时候,涉及到两个user的save操作,我发现变成事务操作了,但是mongodb不支持事物的。 请问,这样的应用场景怎么办? 我的app设计界面要求有(我的发布文章个数,我的关注用户列表,我的被关注列表)。 如果这种设计不行,那边替代的设计如何做。

2 回复
  • 单个collection是支持事务的
  • 多个collection也支持事务,但非常麻烦,自己看两阶段提交

另外wiretiger引擎有更好的实现

哦 我现在去掉了follered字段 保留了follow而已 其实也能满足

回到顶部