Literale

Beschreibung

Gibt Dokumente aus einer festen Gruppe vordefinierter Dokumentobjekte zurück.

Diese Phase wird häufig verwendet, um andere Phasen isoliert zu testen. Sie kann aber auch als Eingabe für Join-Bedingungen verwendet werden.

Syntax

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

Verhalten

Die Phase literals(...) kann nur als erste Phase in einer Pipeline (oder Unterpipeline) verwendet werden. Die Reihenfolge der Dokumente, die von literals zurückgegeben werden, entspricht der Reihenfolge, in der sie definiert sind.

Literale Werte sind zwar am häufigsten, es ist aber auch möglich, Ausdrücke zu übergeben, die ausgewertet und zurückgegeben werden. So können Sie verschiedene Abfrage- und Ausdrucksverhalten testen, ohne zuerst Testdaten erstellen zu müssen.

Im folgenden Beispiel sehen Sie, wie Sie die length(...)-Funktion schnell mit einigen konstanten Testsets testen können:

Node.js

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

...

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