Dokumen

Deskripsi

Menampilkan dokumen dengan menelusuri kumpulan tetap dokumen yang telah ditentukan sebelumnya.

Tahap harus mengambil satu atau beberapa dokumen sebagai input dan tidak boleh berisi dokumen dengan jalur duplikat. Jika dokumen yang dirujuk tidak ada, hasil untuk jalur dokumen tersebut tidak akan ada.

Tahap ini berperilaku mirip dengan batchGet Firestore dan memungkinkan pemfilteran langsung pada hasil, bukan melakukan langkah-langkah pasca-pemfilteran setelah operasi batch.

Sintaksis

Node.js

const results = await db.pipeline()
  .documents(
    db.collection("cities").doc("SF"),
    db.collection("cities").doc("NY"))
  .execute();

Contoh klien

Web

const results = await execute(db.pipeline()
  .documents([
    doc(db, "cities", "SF"),
    doc(db, "cities", "DC"),
    doc(db, "cities", "NY")
  ])
);
Swift
let results = try await db.pipeline()
  .documents([
    db.collection("cities").document("SF"),
    db.collection("cities").document("DC"),
    db.collection("cities").document("NY")
  ]).execute()

Kotlin

val results = db.pipeline()
    .documents(
        db.collection("cities").document("SF"),
        db.collection("cities").document("DC"),
        db.collection("cities").document("NY")
    ).execute()

Java

Task<Pipeline.Snapshot> results = db.pipeline()
    .documents(
        db.collection("cities").document("SF"),
        db.collection("cities").document("DC"),
        db.collection("cities").document("NY")
    ).execute();
Python
results = (
    client.pipeline()
    .documents(
        client.collection("cities").document("SF"),
        client.collection("cities").document("DC"),
        client.collection("cities").document("NY"),
    )
    .execute()
)
Java
Pipeline.Snapshot results =
    firestore
        .pipeline()
        .documents(
            firestore.collection("cities").document("SF"),
            firestore.collection("cities").document("DC"),
            firestore.collection("cities").document("NY"))
        .execute()
        .get();

Perilaku

Untuk menggunakan tahap documents, tahap ini harus muncul sebagai tahap pertama dalam pipeline.

Urutan dokumen yang ditampilkan dari tahap documents tidak stabil dan sebaiknya tidak diandalkan. Tahap pengurutan berikutnya dapat digunakan untuk mendapatkan pengurutan deterministik.

Misalnya, untuk dokumen berikut:

Node.js

await db.collection('cities').doc('SF').set({name: 'San Francsico', state: 'California'});
await db.collection('cities').doc('NYC').set({name: 'New York City', state: 'New York'});
await db.collection('cities').doc('CHI').set({name: 'Chicago', state: 'Illinois'});

Tahap documents dapat digunakan untuk mengambil dokumen SF dan NYC secara khusus, lalu mengurutkannya dalam urutan naik menurut nama.

Node.js

const results = await db.pipeline()
  .documents(
    db.collection('cities').doc('SF'),
    db.collection('cities').doc('NYC'))
  .sort(field("name").ascending())
  .execute();

Kueri ini akan menghasilkan dokumen berikut:

  {name: 'New York City', state: 'New York'}
  {name: 'San Francsico', state: 'California'}