MongoDb locks at the database level, so more databases may be better.
CouchDb does not lock, but uses mvcc (multi-version concurrency control) which means a new version for updates. This gives automatic auditing. Bigger database files though. Must be a cleanup mechanism.
Looking for a document level locking mechanism, but probably wouldn't make sense. Imagine a map/reduce that passes over one or more docs that are receiving updates. I guess the read would need to wait if any of its read targets are locked, but that would mean checking for locks on each doc which may be costly. Not sure, just a hunch.