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 dla warunków łączenia.

Składnia

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

Zachowanie

Etap literals(...) może być używany tylko jako pierwszy etap w potoku (lub podpotoku). Kolejność dokumentów zwracanych z literals jest zgodna z kolejnością ich zdefiniowania.

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

Na przykład poniżej pokazujemy, jak szybko przetestować funkcję length(...) na stałych zbiorach testowych:

Node.js

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

...

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