Literały

Opis

Zwraca dokumenty z ustalonego zestawu predefiniowanych obiektów dokumentów.

Ten etap jest zwykle używany do testowania innych etapów w izolacji, ale może też służyć jako dane wejściowe do warunków łączenia.

Przykłady

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();

Zachowanie

Etap literals(...) może być używany tylko jako pierwszy etap w potoku (lub podpotoku). Kolejność dokumentów zwracanych przez literals(...) jest zgodna z kolejnością, w jakiej są one zdefiniowane.

Najczęściej używane są wartości dosłowne, ale można też przekazywać wyrażenia, które zostaną ocenione i zwrócone. Dzięki temu można testować różne zachowania zapytań i wyrażeń bez konieczności tworzenia danych testowych.

Poniżej pokazujemy, jak szybko przetestować funkcję length(...) na podstawie stałych zestawów testowych:

Node.js

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

...

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