今日呢,筆者想先將專案資料庫的命名與結構先想清楚,也就是Database, Collection 要怎麼取名、各自放什麼。因為我這個小專案會存 { username, password },把這些規劃好,之後串接就會順很多。那就開始吧!
命名沒有硬性規範,但官方社群也提到 沒有特定制式;維持團隊一致即可。以下是我喜歡、清楚好讀的風格。
terrible_login_dev(之後可再開 terrible_login_prod)accounts(用複數小寫,直覺表示「很多帳號」)accounts 文件的欄位(v1)
{
"_id": ObjectId("..."),
"username": "alice",
"password": "banana",
"createdAt": ISODate("2025-10-08T12:34:56Z"),
"updatedAt": ISODate("2025-10-08T12:34:56Z")
}
Date欄位使用 Mongo 的 BSON Date(UTC、毫秒精度),用ISODate(...)/new Date()建就好。(MongoDB)
因為筆者打算讓 username 與 password 都是獨一無二的,因此在 MongoDB 裡使用 Unique Index 來保證這件事:
db.accounts.createIndex({ username: 1 }, { unique: true })
db.accounts.createIndex({ password: 1 }, { unique: true })
terrible_login_dev (Database)
└── accounts (Collection)
├── Document: account
│ ├─ username : string (UNIQUE)
│ ├─ password : string (UNIQUE)
│ ├─ createdAt: Date
│ └─ updatedAt: Date
└── Indexes:
├─ { username: 1 } UNIQUE
└─ { password: 1 } UNIQUE
terrible_login_prod (Database)
└── accounts (Collection)
└── (同上,正式環境用)