1 way
Comments are embedded in Post document:
{
"_id": ObjectId(12345),
"title": "Cat ate elephant!",
"body": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean convallis pretium vulputate.",
"comments": [
{"name": "Cat", "body": "MEOW!"},
{"name": "Elephant", "body": "I was eaten by cat, lol!"},
{"name": "Human", "body": "I am hungry!"}
]
}
2 way
Relationship between Post and Comments (in separate documents). Post has many Comments:
// POST //
{
"_id": ObjectId(12345),
"title": "Cat ate elephant!"
"body": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean convallis pretium vulputate."
}
// Comments //
{
"_id": ObjectId(...),
"post_id": ObjectId(12345),
"name": "Cat",
"body": "MEOW!"
}
{
"_id": ObjectId(...),
"post_id": ObjectId(12345),
"name": "Elephant",
"body": "I was eaten by cat, lol!"
}
{
"_id": ObjectId(...),
"post_id": ObjectId(12345),
"name": "Human",
"body": "I am hungry!"
}
Which way is better?
Method 1
If you have large documents, >15.5 Megabyte, and you gets a loot of comments then you probably will need to store them somewhere else. This because the maximum document size is 16 Megabyte.
Method 2 is the RDMBS way of doing it, Mongo does not have joins inbuilt so you will need to do them in your application.