说明
从一组固定的预定义文档对象返回文档。
此阶段通常用于单独测试其他阶段,不过也可用作联接条件的输入。
语法
Node.js
const results = await db.pipeline()
.literals({ name: "joe", age: 10 }, { name: "bob", age: 30 }, { name: "alice", age: 40 })
.where(field("age").lessThan(35))
.execute();
...
[
{ name: "joe", age: 10 },
{ name: "bob", age: 30 }
]
行为
literals(...) 阶段只能用作流水线(或子流水线)中的第一个阶段。从 literals 返回的文档的顺序与它们的定义顺序一致。
虽然字面量值是最常见的,但也可以传入表达式,系统将对这些表达式进行计算并返回结果,从而无需先创建一些测试数据即可测试不同的查询/表达式行为。
例如,以下内容展示了如何在一些常量测试集上快速测试 length(...) 函数:
Node.js
const results = await db.pipeline()
.literals({ x: constant("foo-bar-baz").length() }, { x: constant("bar").length() })
.execute();
...
[
{ x: 11 },
{ x: 3 }
]