title: Would MongoDB be a good idea for a social network site (developed in Ruby on Rails)?
body: <p>My project (in Ruby on Rails 3) is to develop a "social network" site with the following features:</p>
  
  <ul>
  <li>Users can be friends. It's mutual friendships; not asymetric like Twitter.</li>
  <li>Users can publish links, to share them. Friends of a user can see what this user has shared.</li>
  <li>Friends can comment on those shared links.</li>
  </ul>
  
  <p>So basically we have Users, Links, and Comments, and all that is connected. An interesting thing in social networks is that the User table has kind of a many-to-many relation with itself.</p>
  
  <p>I think I can handle that level of complexity with SQL and RoR.</p>
  
  <p>My question is: would it be a good idea to use MongoDB (or CouchDB) for such a site?</p>
  
  <p>To be honest, I think the answer is no. MongoDB doesn't seem to fit really well with many-to-many relationships. I can't think of a good MongoDB way to implement the friendship relationships. And I've read that Diaspora started with MongoDB but then switched back to classic SQL.</p>
  
  <p>But some articles on the web defend MongoDB for social networks, and above all I want to make a well-informed decision, and not miss a really cool aspect of MongoDB that would change my life.</p>
  
  <p>Also, I've heard about graph DB, which are probably great, but they really seem too young to me, and I don't know how they'd fit with RoR (and not mentioning heroku).</p>
  
  <p>So, am I missing something?</p>