title: MongoDB / NOSQL: Best approach to handling read/unread status on messages
body: <p>Suppose you have a large number of users (M) and a large number of documents (N) and you want each user to be able to mark each document as read or unread (just like any email system).  What's the best way to represent this in MongoDB? Or any other document database?</p>
  
  <p>There are several questions on StackOverflow asking this question for relational databases but I didn't see any with recommendations for document databases:</p>
  
  <p><a href="https://stackoverflow.com/questions/323758/whats-the-most-efficient-way-to-remember-read-unread-status-across-multiple-item">What&#39;s the most efficient way to remember read/unread status across multiple items?</a></p>
  
  <p><a href="https://stackoverflow.com/questions/453074/implementing-an-efficient-system-of-unread-comments-counters">Implementing an efficient system of &quot;unread comments&quot; counters</a></p>
  
  <p>Typically the answers involve a table listing everything a user has read: (i.e. tuples of user id, document id) with some possible optimizations for a cut off date allowing mark-all-as-read to wipe the database and start again knowing that anything prior to that date is 'read'.</p>
  
  <p>So, MongoDB / NOSQL experts, what approaches have you seen in practice to this problem and how did they perform?</p>