$documents(字面量文档)
最后更新:2026-10-09
$documents(字面量文档)
$documents 直接返回给定的字面量文档数组,不访问任何集合,是管道的字面量输入。它必须作为管道第一个阶段使用,常用来构造测试数据或对常量数组做后续表达式运算。每条文档按原样输出到后续阶段。
| 分类 | 核心阶段 |
|---|---|
| MongoDB 版本 | 5.2+ |
| 示例语言 | mongosh (Shell) |
📝 语法
{ $documents: [ { <文档1> }, { <文档2> }, ... ] }
⚙️ 参数
| 文档数组 | 要输出的字面量文档列表。 |
|---|
返回值:字面量文档流
▶ 示例
请在本地安装的 mongosh 中执行以下命令(需已启动 mongod):
// $documents:用字面量数据验证表达式
db.aggregate([
{ $documents: [{ x: 1 }, { x: 2 }] },
{ $addFields: { y: { $add: ['$x', 1] } } }
])
运行结果:
{ "x": 1, "y": 2 }
{ "x": 2, "y": 3 }
📌 注意事项
- 必须作为管道的第一个阶段
- 不读取集合数据,纯字面量输入
- 常用于测试表达式和构造参考数据
🏷️ 相关标签
💡 相关案例
更多实战案例即将上线,敬请期待。
📚 相关教程
❓ 常见问题
Q$documents 能用在管道中间吗?
A不能,它必须是最开始的阶段,之后可接其他阶段。
Q$documents 有什么用?
A构造测试数据、在 mongosh 里验证聚合表达式,不需要真实集合。
Qdb.aggregate 和 db.coll.aggregate 区别?
Adb.aggregate 不带集合运行,首个阶段必须是 $documents 或 $currentOp 等特殊阶段。