vault backup: 2026-05-17 00:06:11

This commit is contained in:
hhs
2026-05-17 00:06:11 +08:00
parent 0e67673d7a
commit bdeb889ee4
57 changed files with 16744 additions and 39 deletions
+7 -6
View File
@@ -241,9 +241,10 @@ db.Model(&Article{}).Omit("content", "password").Find(&articles)
```
> [!tip] `Omit` vs `Select` 的选择策略
> - 需要的列少(比如 3 个字段中有 20 个)→ `Omit` 更省事
> - 需要的列多 → `Select` 更清晰
> - 敏感字段(密码、内部密钥)永远建议 `Omit`,以防误暴露
> - **要查询的列很少**(例如 3/20)→ `Select` 更简洁,明确列出所需字段
> - **要排除的列很少**(例如 3 个不要 / 17 个保留)→ `Omit` 更省事
> - **原则**:谁的参数少就用谁,代码更直观
> - **敏感字段**(密码、密钥等)永远用 `Omit` 排除——白名单式防护,防止重构或新增字段时意外暴露
### Distinct — 去重查询
@@ -319,10 +320,10 @@ fmt.Println(user.ID) // 插入后 ID 自动回填到结构体
| 方法 | 签名 | 行为 |
|------|------|------|
| `Update` | `(col string, value any)` | 更新单个字段 |
| `Updates` | `(value Model | map[string]any)` | 更新一个或多个字段 |
| `Updates` | `(value Model / map[string]any)` | 更新一个或多个字段 |
| `Save` | `(value Model)` | 全量更新所有字段 |
| `UpdateColumn` | `(col string, value any)` | 同 Update 但不触发 Hooks |
| `UpdateColumns` | `(value Model)` | 同 Updates 但不触发 Hooks |
| `UpdateColumn` | `(col string, value any)` | 同 `Update` 但不触发 Hooks |
| `UpdateColumns` | `(value Model)` | 同 `Updates` 但不触发 Hooks |
### 详细示例