在Mongoose中的primefaces多个操作

考虑一个模式:

var userSchema = mongoose.Schema({ ... followers: [{ type: mongoose.Schema.Types.ObjectId, ref: 'User' }], following: [{ type: mongoose.Schema.Types.ObjectId, ref: 'User' }] ... } 

userA跟随userA.followinguserA.following被推入userA.followinguserA被推入userB.followers 。 两个操作都需要一个.save()

确保如果.save()任何一个失败,两个文档都保持不变,那么什么是一种好的方法 – 或许是概念上的?

       

网上收集的解决方案 "在Mongoose中的primefaces多个操作"

我原来是在第一个评论中build议的@BatScream。 我重新组织了我的数据模式,并删除了列表followers

在对这个主题进行了大量的阅读之后,我的一个小小的结论是,在mongoDB / Mongoose.js中的多个文档之间进行交易虽然可行,但可能并不是最安全的事情。 在执行两阶段提交时,回滚操作本身可能会失败。

如果跨多个文档的primefaces操作是必要的,可能MongoDB不是正确的工具。 然而,一些数据重组/重组有时可能会使多文档交易变得不必要。