문서

설명

사전 정의된 고정 문서 세트를 조회하여 문서를 반환합니다.

단계는 하나 이상의 문서를 입력으로 가져와야 하며 경로가 중복된 문서를 포함할 수 없습니다. 참조된 문서가 없으면 해당 문서 경로에 대한 결과가 생성되지 않습니다.

이 단계는 Firestore의 batchGet과 유사하게 작동하며 일괄 작업 후 사후 필터링 단계를 실행하는 대신 결과를 직접 필터링할 수 있습니다.

구문

Node.js

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

클라이언트 예시

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()
)
자바
Pipeline.Snapshot results =
    firestore
        .pipeline()
        .documents(
            firestore.collection("cities").document("SF"),
            firestore.collection("cities").document("DC"),
            firestore.collection("cities").document("NY"))
        .execute()
        .get();

동작

documents 단계를 사용하려면 파이프라인의 첫 번째 단계로 표시되어야 합니다.

documents 단계에서 반환되는 문서의 순서는 불안정하므로 이에 의존해서는 안 됩니다. 후속 정렬 단계를 사용하여 결정적 순서를 가져올 수 있습니다.

예를 들어 다음 문서의 경우:

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'});

documents 단계를 사용하여 SFNYC 문서만 검색한 다음 이름의 오름차순으로 정렬할 수 있습니다.

Node.js

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

이 쿼리는 다음과 같은 문서를 생성합니다.

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