# 唯一索引与复合索引

URL: https://caijiao.org/mongodb/05-indexes/02-unique-compound
Source: docs/mongodb/05-indexes/02-unique-compound.md
Description: 本章节介绍 MongoDB 中唯一索引和复合索引的概念及使用方法，帮助用户保证数据唯一性和提升查询效率。

[MongoDB](/mongodb/) 提供多种索引类型，其中唯一索引和复合索引是常用且重要的索引类型。

## 唯一索引（Unique Index）

唯一索引确保索引字段的值在集合中唯一，防止重复数据插入。

### 创建唯一索引示例

```js
db.users.createIndex({ email: 1 }, { unique: true })
````

* 上述索引确保 `email` 字段在所有文档中唯一。
* 插入重复的 `email` 会导致错误。

## 复合索引（Compound Index）

复合索引是基于多个字段组合创建的索引，用于支持多字段查询和排序。

### 创建复合索引示例

```js
db.orders.createIndex({ customerId: 1, orderDate: -1 })
```

* 支持根据 `customerId` 升序和 `orderDate` 降序的查询。
* 复合索引可以加速涉及多个字段的过滤和排序操作。

## 使用建议

* 对需要保证唯一性的字段使用唯一索引，如用户名、邮箱等。
* 结合常用查询条件设计复合索引，提高查询效率。
* 注意索引字段顺序影响索引利用率，最左前缀原则需掌握。

---

唯一索引与复合索引是 MongoDB 优化数据完整性和查询性能的关键手段。
