Sorry, I'm not sure how you define an album, an action or a status. And why you chose a specific type.
But here is a possible schema on how I interpreted your relations:
profile collection
{
_id: 'sirajea',
name: {
first: 'Siraj',
last: 'Abbas'
},
followers: [
'exampleUser',
'exampleUser2'
],
feeds: [
ObjectID()
]
}
album collection
{
_id: ObjectID(),
owner: 'sirajea',
imageUrl: 'www.google.com'
}
status collection
{
_id: ObjectID(),
text: 'hey im fine'
}
action collection
{
_id: ObjectID(),
actor: '<username>',
sources: [
{
id: ObjectID(), // album ID
type:'album'
},
{
id: ObjectID(), // status ID
type:'status'
}
]
}
action could also look like this (depending on the cardinality of the relationship):
{
_id: ObjectID(),
actor: '<username>',
sources: {
album: ObjectID(), // album ID
status: ObjectID() // status ID
}
}