Files
web/MongoDB/create_collections.js
whm 0800982224 feat: 分片上传断点续传、临时目录后台配置与清扫、宇恒云账号管理
- 管理端大文件分片上传与 sessionStorage 续传;Nginx 大请求体/超时
- .chunk-uploads 定期清扫;system_config 后台配置保留时长与扫描间隔
- 宇恒云 POST /register 对接与 yuheng_cloud_register_records 留痕;yuheng_cloud:manage 权限

Made-with: Cursor
2026-04-13 14:50:27 +08:00

102 lines
3.7 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
// 创建 yh_web 所需 MongoDB 集合及索引mongosh 执行)
// 用法: mongosh "mongodb://localhost:27017" --file MongoDB/create_collections.js
// 或: mongosh "mongodb://localhost:27017" MongoDB/create_collections.js
const dbName = "yxd-agent-testing";
const db = db.getSiblingDB(dbName);
print("使用数据库: " + dbName);
// 1. sites
if (!db.getCollectionNames().includes("sites")) {
db.createCollection("sites");
print("已创建集合: sites");
}
db.sites.createIndex({ created_at: -1 }, { name: "idx_created_at", background: true });
// 2. pages
if (!db.getCollectionNames().includes("pages")) {
db.createCollection("pages");
print("已创建集合: pages");
}
db.pages.createIndex(
{ site_id: 1, slug: 1 },
{ unique: true, name: "idx_site_slug", background: true }
);
// 3. site_assets
if (!db.getCollectionNames().includes("site_assets")) {
db.createCollection("site_assets");
print("已创建集合: site_assets");
}
db.site_assets.createIndex({ site_id: 1 }, { name: "idx_site_id", background: true });
// 4. users
if (!db.getCollectionNames().includes("users")) {
db.createCollection("users");
print("已创建集合: users");
}
db.users.createIndex({ username: 1 }, { unique: true, name: "idx_username", background: true });
db.users.createIndex({ mobile: 1 }, { name: "idx_mobile", background: true, sparse: true });
// 5. workspaces
if (!db.getCollectionNames().includes("workspaces")) {
db.createCollection("workspaces");
print("已创建集合: workspaces");
}
db.workspaces.createIndex({ user_id: 1 }, { name: "idx_user_id", background: true });
// 6. conversations
if (!db.getCollectionNames().includes("conversations")) {
db.createCollection("conversations");
print("已创建集合: conversations");
}
db.conversations.createIndex({ user_id: 1 }, { name: "idx_user_id", background: true });
db.conversations.createIndex({ workspace_id: 1 }, { name: "idx_workspace_id", background: true });
// 7. messages统计用功能未实现也可先建
if (!db.getCollectionNames().includes("messages")) {
db.createCollection("messages");
print("已创建集合: messages");
}
db.messages.createIndex({ conversation_id: 1 }, { name: "idx_conversation_id", background: true });
// 8. files统计用功能未实现也可先建
if (!db.getCollectionNames().includes("files")) {
db.createCollection("files");
print("已创建集合: files");
}
db.files.createIndex({ user_id: 1 }, { name: "idx_user_id", background: true });
// 9. system_config支付、短信等配置_id 为字符串键)
if (!db.getCollectionNames().includes("system_config")) {
db.createCollection("system_config");
print("已创建集合: system_config");
}
// 10. role_permissions角色权限role_id -> permissions 数组)
if (!db.getCollectionNames().includes("role_permissions")) {
db.createCollection("role_permissions");
print("已创建集合: role_permissions");
}
db.role_permissions.createIndex({ role_id: 1 }, { unique: true, name: "idx_role_id", background: true });
// 11. site_users前台直播弹幕账号与后台 users 分离)
if (!db.getCollectionNames().includes("site_users")) {
db.createCollection("site_users");
print("已创建集合: site_users");
}
db.site_users.createIndex({ username: 1 }, { unique: true, name: "idx_username", background: true });
// 12. yuheng_cloud_register_records宇恒云 POST /register 本地留痕username、password
if (!db.getCollectionNames().includes("yuheng_cloud_register_records")) {
db.createCollection("yuheng_cloud_register_records");
print("已创建集合: yuheng_cloud_register_records");
}
db.yuheng_cloud_register_records.createIndex(
{ created_at: -1 },
{ name: "idx_created_at", background: true }
);
print("集合与索引处理完成。");