There is one thing that TxMongo does that PyMongo, Motor and the rest don't do: handle deadlines and timeouts.
We're (HGST/WesternDigital) using MongoDB (with WiredTiger) in real-time applications and one of our requirements was to honour application set deadlines (or timeouts) on a per-call basis.So if you are interested in that, we have it. :)
For those just tuning in...Timeout: how many seconds the call is allowed run before raising an error.Deadline: a time (unix timestamp) in the future that the call is allowed to run before raising an error.
We take advantage of Twisted's native deferred cancellation mechanism in addition to validation checks that no modifications happen to MongoDB when a TimeExceeded is raised.
We've been very satisfied with how MongoDB has performed (post 3.0/WT) along with TxMongo and Twisted.
Cheers,Bret