mediumFull Stack EngineerTechnology
How do you model many-to-many relationships in MongoDB vs SQL?
Posted 18/04/2026
by Mehedy Hasan Ador
Question Details
"Users can bookmark questions. How do you model this in both databases?"
Suggested Solution
SQL: Junction table
CREATE TABLE bookmarks (
userid TEXT REFERENCES users(id),
questionid TEXT REFERENCES questions(id),
createdat TIMESTAMP DEFAULT NOW(),
PRIMARY KEY (userid, question_id)
);
MongoDB: Separate collection (recommended)
{ userId: "u1", questionId: "q1", createdAt: ISODate() }
db.bookmarks.createIndex({ userId: 1, createdAt: -1 });
db.bookmarks.createIndex({ questionId: 1 });
Embedding arrays (user.bookmarks: ["q1", "q2"]) works for small lists but hits 16MB doc limit.