Literales

Descripción

Devuelve documentos de un conjunto fijo de objetos de documento predefinidos.

Esta etapa se suele usar para probar otras etapas de forma aislada, aunque también se puede usar como entrada para condiciones de unión.

Sintaxis

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

Comportamiento

La etapa literals(...) solo se puede usar como la primera etapa de una canalización (o subcanalización). El orden de los documentos que se devuelven desde literals coincide con el orden en el que se definen.

Si bien los valores literales son los más comunes, también es posible pasar expresiones, que se evaluarán y devolverán, lo que permite probar diferentes comportamientos de consultas o expresiones sin necesidad de crear primero algunos datos de prueba.

Por ejemplo, el siguiente código muestra cómo probar rápidamente la función length(...) en algunos conjuntos de prueba predefinidos:

Node.js

const results = await db.pipeline()
  .literals({ x: constant("foo-bar-baz").length() }, { x: constant("bar").length() })
  .execute();

...

[
  { x: 11 },
  { x: 3 }
]