NoSQL data modeling: different profile types
<p>Say I have a user who can belong to multiple roles within a group. It is modeled like this (from third party library).</p>

<pre><code>{
  _id: '1',
  roles: {
    'repo1': ['contributor'],
    'repo2': ['contributor', 'moderator', 'reviewer']
  }
}
</code></pre>

<p>For each role type, there is a different profile type. For example, a <code>reviewer</code> might have a schema like so:</p>

<pre><code>{
  approved: [{
    pullRequest: '5678',
    message: 'Now can manage 3D integration',
    when: ISODate()
  }],
  denied: [{
    pullRequest: '1234',
    reason: 'Failed tests',
    when: ISODate()
  }]
}
</code></pre>

<p>which might be different than a <code>contributor</code>'s profile. Users can still have a profile in every group for every role they are in.</p>

<p>In NoSQL, how do you manage multiple types of user profiles? What is the most correct type of schema and relationship for this application?</p>