我有一个Node.js API方法,它创建一个Track文档然后创建Task文档(它有一个DBRef到一个Track来处理)以实际转换并上传到s3(具体操作并不重要) )。我使用Mongoose在MongoDB上执行操作。
所以我的问题是有什么方法可以避免让#34;停滞不前"创建了跟踪文档但没有任务的轨道?创建一个没有跟踪的任务很好,但是在这种情况下我们没有DBRef,直到我们创建一个跟踪文档,然后更新一个可能因服务器重启而失败的任务文档。
在传统的RDBMS中,这种问题很容易解决,因为我会在一次交易中这样做。
提前致谢。
更新: 我的模式看起来像这样:
var Track = new Schema({
name: String,
...
});
var Task = new Schema({
track: {type: Schema.Types.ObjectId, ref: 'Track'},
created: {type: Date, default: Date.now}
});