Which is a better trade-off for validation of a common field?
user.groups = [someIds]
db.posts.findOne({ _id: someId, group: someOtherId })
if there's no document returned then I can assume the user is querying for a document outside of their group
--- OR ---
db.posts.findOne({ _id: someId }, function(err, doc){
if (!~user.groups.indexOf(doc.group)){
// not validated
}
})