However, even if I can live without the CodeIgniter Active Record, I didn’t want to give up the good stuff in the CI_Session class and do session management using native PHP sessions. I took a look at CI Session.php and found a way to extend it so that the existing code can be (mostly) reused. The implementation would be nicer if the CI_Session class was actually designed for extension with DB functions extracted so that they could be easily overridden to use a different kind of storage. My approach relies on the internal implementation of the session manipulation functions and can easily break when CI version changes. The implementation is based on 1.7.2 and tested only on that; if you want to use it on a different CI version, be prepared to read the Session.php of that version and tweak the Mongo session implementation accordingly.
You can download my implementation here; the package contains a README for installation instructions. The sessions will be persisted to MongoDB instead of SQL — otherwise they behave exactly as before.