Littéraux

Description

Renvoie des documents à partir d'un ensemble fixe d'objets de document prédéfinis.

Cette étape est généralement utilisée pour tester d'autres étapes de manière isolée, mais elle peut également servir d'entrée pour les conditions de jointure.

Syntaxe

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

Comportement

L'étape literals(...) ne peut être utilisée que comme première étape d'un pipeline (ou d'un sous-pipeline). L'ordre des documents renvoyés par literals correspond à l'ordre dans lequel ils sont définis.

Bien que les valeurs littérales soient les plus courantes, il est également possible de transmettre des expressions qui seront évaluées et renvoyées. Cela permet de tester différents comportements de requête / d'expression sans avoir à créer au préalable des données de test.

Par exemple, le code suivant montre comment tester rapidement la fonction length(...) sur des ensembles de tests constants :

Node.js

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

...

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