Prepare conflicts may only be safely ignored when a command can
guarantee it does not perform writes. Prepare conflicts are ignored when
the read concern is local, available, or majority and the command is
aggregate, count, distinct, find, getMore, or group. Aggregate is a
special case because it may perform writes to an output collection, but
it enables prepare conflict enforcement before doing so.
Additionally, connections from a DBDirectClient inherit the
ignore_prepare state from their parent operation.
SERVER-36490 Initial sync should not actually prepare transactions on applying prepareTransaction oplog entries
SERVER-36491 During initial sync, make commitTransaction oplog entries apply the transaction from the prepare oplog entry