在Mongoose中的primefaces多个操作
考虑一个模式:
var userSchema = mongoose.Schema({ ... followers: [{ type: mongoose.Schema.Types.ObjectId, ref: 'User' }], following: [{ type: mongoose.Schema.Types.ObjectId, ref: 'User' }] ... }
当userA
跟随userA.following
, userA.following
被推入userA.following
, userA
被推入userB.followers
。 两个操作都需要一个.save()
。
确保如果.save()
任何一个失败,两个文档都保持不变,那么什么是一种好的方法 – 或许是概念上的?
我原来是在第一个评论中build议的@BatScream。 我重新组织了我的数据模式,并删除了列表followers
。
在对这个主题进行了大量的阅读之后,我的一个小小的结论是,在mongoDB / Mongoose.js中的多个文档之间进行交易虽然可行,但可能并不是最安全的事情。 在执行两阶段提交时,回滚操作本身可能会失败。
如果跨多个文档的primefaces操作是必要的,可能MongoDB不是正确的工具。 然而,一些数据重组/重组有时可能会使多文档交易变得不必要。