# MongoServerError：变更流命名空间未找到

- **ID:** `mongodb/change-stream-namespace-not-found`
- **领域:** mongodb
- **类别:** runtime_error
- **验证级别:** ai_generated
- **修复率:** 80%

## 根因

变更流管道中指定的集合或数据库不存在，或在流生命周期内被删除。

## 版本兼容性

| 版本 | 状态 | 引入 | 弃用 |
|------|------|------|------|
| mongodb 7.0 | active | — | — |
| mongodb 6.0 | active | — | — |
| mongodb 5.0 | active | — | — |

## 解决方案

1. ```
   在打开变更流前验证集合是否存在：db.collection('myColl').exists()，如果不存在则创建。
   ```
2. ```
   使用try-catch块在出现此错误时重新创建变更流：try { cursor = collection.watch(); } catch (e) { if (e.code === 166) { db.createCollection('myColl'); } }
   ```

## 无效尝试

- **** — The collection still doesn't exist, so the error persists. (80% 失败率)
- **** — Batch size does not affect namespace validity; the root cause is missing collection. (90% 失败率)
