// MongoDB 索引初始化腳本 // 使用方式: mongo permission < init_indexes.js use permission; // ========== role 集合索引 ========== print("Creating indexes for 'role' collection..."); db.role.createIndex( { "uid": 1 }, { unique: true, name: "idx_uid" } ); db.role.createIndex( { "client_id": 1, "status": 1 }, { name: "idx_client_status" } ); db.role.createIndex( { "name": 1 }, { name: "idx_name" } ); db.role.createIndex( { "status": 1 }, { name: "idx_status" } ); print("✅ role indexes created"); // ========== permission 集合索引 ========== print("Creating indexes for 'permission' collection..."); db.permission.createIndex( { "name": 1 }, { unique: true, name: "idx_name" } ); db.permission.createIndex( { "parent_id": 1 }, { name: "idx_parent" } ); db.permission.createIndex( { "http_path": 1, "http_method": 1 }, { unique: true, sparse: true, name: "idx_http" } ); db.permission.createIndex( { "status": 1, "type": 1 }, { name: "idx_status_type" } ); db.permission.createIndex( { "type": 1 }, { name: "idx_type" } ); print("✅ permission indexes created"); // ========== user_role 集合索引 ========== print("Creating indexes for 'user_role' collection..."); db.user_role.createIndex( { "uid": 1 }, { unique: true, name: "idx_uid" } ); db.user_role.createIndex( { "role_id": 1, "status": 1 }, { name: "idx_role_status" } ); db.user_role.createIndex( { "brand": 1 }, { name: "idx_brand" } ); db.user_role.createIndex( { "status": 1 }, { name: "idx_status" } ); print("✅ user_role indexes created"); // ========== role_permission 集合索引 ========== print("Creating indexes for 'role_permission' collection..."); db.role_permission.createIndex( { "role_id": 1, "permission_id": 1 }, { unique: true, name: "idx_role_perm" } ); db.role_permission.createIndex( { "permission_id": 1 }, { name: "idx_permission" } ); db.role_permission.createIndex( { "role_id": 1 }, { name: "idx_role" } ); print("✅ role_permission indexes created"); // ========== 顯示所有索引 ========== print("\n========== All Indexes =========="); print("\n--- role ---"); printjson(db.role.getIndexes()); print("\n--- permission ---"); printjson(db.permission.getIndexes()); print("\n--- user_role ---"); printjson(db.user_role.getIndexes()); print("\n--- role_permission ---"); printjson(db.role_permission.getIndexes()); print("\n🎉 All indexes created successfully!");