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!"}
]
}
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?
The $comment operator can be used to add a comment to any query predicate in MongoDB to understand the purpose of that query. As its name directs, it acts as a comment in MongoDB just like anyone adds a comment in any other programming language.
To save the data into the database, we need to create a new instance of our model that we created early. We will pass into this instance the user's input. Once we have it then we just need to enter the command "save". Mongoose will return a promise on a save to the database.
Large objects, or "files", are easily stored in MongoDB. It is no problem to store 100MB videos in the database. This has a number of advantages over files stored in a file system. Unlike a file system, the database will have no problem dealing with millions of objects.
Difference Between MongoDB and NoSQLA MongoDB “database” is the top-level container, consists of one or more collections while NoSQL data stores provide a top-level namespace or container for storing data. MongoDB is based on the document store data model in which a document is stored as BSON format.
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.
The first way is preferred, as long as the document is not write-heavy. If you're going to have 5000 comments added to a post within a minute, then use the second method.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With