123 lines
2.4 KiB
JavaScript
123 lines
2.4 KiB
JavaScript
// 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!");
|
|
|