Database Schema
Collections
code_snippets
{
_id: ObjectId("..."),
user_id: 123456789,
file_name: "example.py",
programming_language: "python",
code: "def hello():\n pass",
note: "Example function",
tags: ["python", "example"],
created_at: ISODate("2025-10-10T10:30:00Z"),
updated_at: ISODate("2025-10-10T10:30:00Z"),
version: 1,
is_deleted: false,
file_size: 1234,
line_count: 10
}
users
{
_id: ObjectId("..."),
user_id: 123456789,
username: "john_doe",
first_name: "John",
last_name: "Doe",
created_at: ISODate("2025-01-01T00:00:00Z"),
last_active: ISODate("2025-10-10T10:30:00Z"),
settings: { language: "he", notifications: true },
stats: { total_files: 156, total_searches: 45 }
}
bookmarks
{
_id: ObjectId("..."),
user_id: 123456789,
file_id: ObjectId("..."),
bookmark_name: "Important code",
created_at: ISODate("2025-10-10T10:30:00Z"),
tags: ["important", "review"]
}
sessions (WebApp)
{
_id: "session_id_here",
user_id: 123456789,
created_at: ISODate("2025-10-10T10:30:00Z"),
expires_at: ISODate("2025-10-11T10:30:00Z"),
data: { }
}
Indexes
// code_snippets
db.code_snippets.createIndex({ "user_id": 1, "created_at": -1 })
db.code_snippets.createIndex({ "programming_language": 1 })
db.code_snippets.createIndex({ "file_name": "text", "code": "text", "note": "text" })
db.code_snippets.createIndex({ "tags": 1 })
db.code_snippets.createIndex({ "is_deleted": 1 })
// users
db.users.createIndex({ "user_id": 1 }, { unique: true })
db.users.createIndex({ "username": 1 })
// bookmarks
db.bookmarks.createIndex({ "user_id": 1, "file_id": 1 })
// sessions
db.sessions.createIndex({ "expires_at": 1 }, { expireAfterSeconds: 0 })
Relationships
users (user_id)
├─→ code_snippets (user_id)
└─→ bookmarks (user_id)
└─→ code_snippets (_id via file_id)