Reactive Scala Driver for MongoDB

其实最好的学习文档就是官方提供的http://reactivemongo.org/releases/0.12/documentation/index.html

关于Driver和Connection

MongoDriver的实例管理者共享的资源,比如用于异步处理的actor system。
一个连接管理着网络连接池。通常一个driver和connection在一个应用中只需要一个实例即可。

MongoConnection是一个逻辑连接的表示,实际是有一个连接池构成,默认有10个连接。可以通过connection option参数rm.nbChannelsPerNode进行设置。
Driver和connection的创建是有代价的,所以在应用中可以创建之后共享使用。而DefaultDB, Collection这样的对象是及其轻量的,随用随建即可。而且我们也不应创建出DB,Collection之后把这些引用就保存起来一直使用,因为如果底层网络出现问题,你一直使用的这个DB活着Collection对象就会出现问题。随用随取这种方式可以避免获得有问题的对象。

Connection options

import reactivemongo.api.MongoConnectionOptions

val conOpts = MongoConnectionOptions(/* connection options */)
val connection4 = driver1.connection(List("localhost"), options = conOpts)

通过设置连接选项参数可以指定网络连接、mongo写关注等方面的行为。
详情参见

Write-concern文档
Read-preferences文档