Literal

Deskripsi

Menampilkan dokumen dari sekumpulan objek dokumen tetap yang telah ditentukan sebelumnya.

Tahap ini biasanya digunakan untuk menguji tahap lain secara terpisah, meskipun dapat juga digunakan sebagai input untuk menggabungkan kondisi.

Sintaksis

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

Perilaku

Tahap literals(...) hanya dapat digunakan sebagai tahap pertama dalam pipeline (atau sub-pipeline). Urutan dokumen yang ditampilkan dari literals akan sesuai dengan urutan saat dokumen tersebut ditentukan.

Meskipun nilai literal adalah yang paling umum digunakan, Anda juga dapat meneruskan ekspresi yang akan dievaluasi dan ditampilkan. Dengan begitu, Anda dapat menguji berbagai perilaku kueri/ekspresi tanpa harus membuat beberapa data pengujian terlebih dahulu.

Misalnya, berikut cara menguji fungsi length(...) dengan cepat pada beberapa set pengujian konstan:

Node.js

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

...

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