字面量

说明

从一组固定的预定义文档对象返回文档。

此阶段通常用于单独测试其他阶段,不过也可用作联接条件的输入。

语法

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 }
]