複数のドキュメントタイプ(別々のコレクション)にまたがるトランザクションが本当に必要な場合、これを実現する手段は、実行するアクションを格納する単一のテーブルを使用することです。
db.actions.insert(
{ actions: [{collection: 'players', _id: 'p1', update: {$set : {name : 'bob'} } },
{collection: 'stories', _id: 's1', update: {$set : {location: 'library'} } }], completed: false }, callback);
この挿入はアトミックであり、すべて一度に実行されます。次に、「actions」コレクション内のコマンドを実行して、コマンドを完了としてマークするか、コマンドを完了するときに削除して、すべて完了したときに元のコールバックを呼び出すことができます。これは、アクション処理ループがデータベースを更新する唯一のものである場合にのみ機能します。もちろん、マングースの使用をやめる必要がありますが、そうするのが早ければ早いほど、とにかく良くなります。