My only concern is silent failures. As it stands now, None can mean either key not found or value type mismatch.
Perhaps, do something like:
```scala
col.findOne(MongoDBObject(keyName -> key)) match {
  case None => None // key not found
  case Some(object) => object.getAs[V](valueName) match
    case None => // Exception
    case Some(value) => Some(value)
  }
}
```
What do you think?