# MongoDB 集合说明(yh_web) 默认数据库名:`yxd-agent-testing`(见 `server/config/constants.go`)。 以下为功能涉及的集合及文档结构,**线上已有的集合也按此结构对照**;缺失的集合可用 `create_collections.js` 创建。 --- ## 1. sites(站点) | 字段 | 类型 | 说明 | |------|------|------| | _id | ObjectID | 主键 | | name | string | 站点名称 | | domain | string | 域名 | | description | string | 描述(可选) | | created_at | string | 创建时间(如 RFC3339) | --- ## 2. pages(网页,属于某站点) | 字段 | 类型 | 说明 | |------|------|------| | _id | ObjectID | 主键 | | site_id | string | 站点 ID(ObjectID 十六进制字符串) | | slug | string | 路径标识:index, about, ... | | title | string | 标题 | | type | string | 类型:homepage / page | | content | string | HTML 或 JSON 字符串(首页为 HomepageData JSON) | | updated_at | string | 更新时间 | **索引建议**:`{ site_id: 1, slug: 1 }` 唯一,便于按站点+slug 查首页/子页。 --- ## 3. site_assets(站点资源/上传文件) | 字段 | 类型 | 说明 | |------|------|------| | _id | ObjectID | 主键 | | site_id | string | 站点 ID | | name | string | 文件名/显示名 | | file_path | string | 相对路径 | | size | int64 | 字节数 | | content_type | string | MIME 类型 | | created_at | string | 创建时间 | **索引建议**:`{ site_id: 1 }`。 --- ## 4. users(用户) | 字段 | 类型 | 说明 | |------|------|------| | _id | ObjectID | 主键 | | username | string | 用户名 | | mobile | string | 手机号(可选) | | email | string | 邮箱 | | password | string | 密码哈希 | | role | string | 角色名 | | role_id | int | 9527=超级管理员,1=普通用户 | | is_beta | bool | 是否体验用户(可选) | | trial_start_date | string/date | 试用开始(可选) | | trial_end_date | string/date | 试用结束(可选) | | lastLogin | string | 最后登录(可选) | | llm | string | LLM 配置(可选) | **索引建议**:`{ username: 1 }` 唯一,`{ mobile: 1 }` 可选。 --- ## 5. workspaces(工作空间) | 字段 | 类型 | 说明 | |------|------|------| | _id | ObjectID | 主键 | | name | string | 名称 | | user_id | string | 用户 ID | | created_at | string | 创建时间 | **索引建议**:`{ user_id: 1 }`。 --- ## 6. conversations(对话) | 字段 | 类型 | 说明 | |------|------|------| | _id | ObjectID | 主键 | | title | string | 标题 | | user_id | string | 用户 ID | | workspace_id | string | 工作空间 ID | | created_at | string | 创建时间 | | updated_at | string | 更新时间 | **索引建议**:`{ user_id: 1 }`,`{ workspace_id: 1 }`。 --- ## 7. messages(消息,统计用) | 字段 | 类型 | 说明 | |------|------|------| | _id | ObjectID | 主键 | | conversation_id | string | 对话 ID | | role | string | user / assistant / system | | content | string | 内容 | | created_at | string | 创建时间 | **说明**:当前仅统计接口使用,若功能未实现可先建空集合。 --- ## 8. files(文件,统计用) | 字段 | 类型 | 说明 | |------|------|------| | _id | ObjectID | 主键 | | user_id | string | 用户 ID | | name | string | 文件名 | | file_path | string | 存储路径 | | size | int64 | 字节数 | | created_at | string | 创建时间 | **说明**:当前仅统计接口使用,若功能未实现可先建空集合。 --- ## 9. system_config(系统配置,按 _id 区分类型) 单集合,`_id` 为字符串键,不同键对应不同配置结构。 - ** _id: "payment"** — 支付配置 - wechat: { app_id, mch_id, api_key, api_key_v3, enabled } - alipay: { app_id, private_key, alipay_public_key, enabled } - **_id: "sms_platform"** — 短信配置 - provider, access_key, secret_key, sign_name, template_id, enabled **索引**:默认 _id 唯一即可。 --- ## 使用方式 在项目根目录执行(需已安装 mongosh): ```bash mongosh "mongodb://localhost:27017" --file MongoDB/create_collections.js ``` 或进入 mongosh 后: ```js use("yxd-agent-testing") // 再粘贴 create_collections.js 中的创建与索引语句 ```