title: Patterns for Mongodb c# client
body: <p>I want to use mongodb for a project.</p>
  
  <p>OK yes, i able to connect to it and do things.</p>
  
  <p>However, I want to be able to wrap the mongodb driver around a wrapper so if i want to change the database, i want to be easily change it.</p>
  
  <p>Repository pattern looks like something I can use with Mongodb, but I m kinda over thinking where to start the connection? should i use a singleton ? </p>
  
  <p>Mongodb docs says that it is thread safe, so if i create a single MongoServer and single MongoDatabase classes via Singleton and per collection, I can have a method that return a collections.</p>
  
  <p>Is this a bad design?</p>
  
  <p>What would be a better design?</p>
  
  <p>I want to use singleton to create connection to database cause I dont want to keep creating connection per thread, if there is already a persistent connection.</p>
  
  <p>any experience with this?</p>