Trying to delete or destroy a model with association definitions that include dependent clauses from within a transaction fails with a Mongo::Error::OperationFailure. This seems to boil down to the calling of #blank? on the relation and how #blank? is implemented https://github.com/mongodb/mongoid/blob/master/lib/mongoid/association/many.rb#L24
Since a $count operation is not allowed from within a transaction, this results in the OperationFailure exception being raised.
If it is possible to change the implementation to use #exists? instead of #count? here, it would also provide a slight performance boost as the database can return after finding the first match and isn't forced to inspect the entire collection.