CatCat/mongo-init/init-db.js
2026-02-09 16:08:55 +08:00

37 lines
1.2 KiB
JavaScript

// MongoDB 初始化脚本
// Docker 首次启动时自动执行,创建集合、索引和默认管理员账号
db = db.getSiblingDB('draw-a-cat')
// 创建集合
db.createCollection('cats')
db.createCollection('users')
db.createCollection('votes')
db.createCollection('favorites')
db.createCollection('admins')
db.createCollection('review_logs')
// 创建索引
db.users.createIndex({ openId: 1 }, { unique: true })
db.votes.createIndex({ catId: 1, userId: 1 }, { unique: true })
db.favorites.createIndex({ catId: 1, userId: 1 }, { unique: true })
db.cats.createIndex({ createdAt: -1 })
db.cats.createIndex({ likes: -1 })
db.cats.createIndex({ authorId: 1 })
db.cats.createIndex({ status: 1 })
db.cats.createIndex({ status: 1, createdAt: -1 })
db.cats.createIndex({ status: 1, likes: -1 })
db.admins.createIndex({ username: 1 }, { unique: true })
// 插入默认超级管理员
// 密码: admin123 (bcryptjs hash, 10 rounds)
db.admins.insertOne({
username: 'admin',
password: '$2a$10$9OwHouTM6DHixV/..dJcDOMqPY.wH58OarKlkHbBivaUhrkD8y.6e',
role: 'super_admin',
createdAt: new Date(),
updatedAt: new Date()
})
print('数据库初始化完成: 集合、索引已创建,默认管理员账号 admin/admin123')