Na documentação oficial afirma-se que
MongoServer
, MongoDatabase
, e MongoCollection
são thread-safe, e que você deve criar um único MongoServer
para cada banco de dados ao qual você se conecta. Assim,
MongoServer
, MongoDatabase
, e MongoCollection
podem ser configurados com segurança para serem singletons. MongoServer
ajudará até mesmo a impor isso retornando o mesmo MongoDatabase
instância para chamadas sucessivas e MongoDatabase
fará a mesma coisa para MongoCollection
s. Ou seja seu
MongoServer
instância pode ser configurada com segurança para ter um estilo de vida singleton em seu contêiner IoC, e você também pode configurar a injeção para MongoDatabase
e talvez até MongoCollection
também. Estou usando essa estratégia com o Windsor - você pode ver meu
MongoInstaller
aqui:https://gist.github.com/2427676
- permite que minhas classes apenas sigam em frente e façam isso:public class SomeClass
{
public SomeClass(MongoCollection<Person> people)
{ ... }
}
para ter uma coleção injetada, bonita e pronta para uso.