Koleksiyon

Açıklama

Belirli bir koleksiyondaki tüm dokümanları döndürür. Koleksiyonlar iç içe yerleştirilebilir.

Söz dizimi

Node.js

const results = await db.pipeline()
  .collection('/cities/SF/departments')
  .execute();

Müşteri örnekleri

Web

const results = await execute(db.pipeline()
  .collection("users/bob/games")
  .sort(field("name").ascending())
  );
Swift
let results = try await db.pipeline()
  .collection("users/bob/games")
  .sort([Field("name").ascending()])
  .execute()

Kotlin

val results = db.pipeline()
    .collection("users/bob/games")
    .sort(field("name").ascending())
    .execute()

Java

Task<Pipeline.Snapshot> results = db.pipeline()
    .collection("users/bob/games")
    .sort(field("name").ascending())
    .execute();
Python
from google.cloud.firestore_v1.pipeline_expressions import Field

results = (
    client.pipeline()
    .collection("users/bob/games")
    .sort(Field.of("name").ascending())
    .execute()
)
Java
Pipeline.Snapshot results =
    firestore
        .pipeline()
        .collection("users/bob/games")
        .sort(ascending(field("name")))
        .execute()
        .get();

Davranış

collection aşamasını kullanmak için bu aşama, işlem hattında ilk aşama olarak görünmelidir.

collection aşamasından döndürülen belgelerin sırası kararsızdır ve bu sıraya güvenilmemelidir. Belirleyici bir sıralama elde etmek için sonraki bir sıralama aşaması kullanılabilir.

Örneğin, aşağıdaki belgeler için:

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'});
await db.collection('states').doc('CA').set({name: 'California'});

collection aşaması, cities koleksiyonundaki tüm şehirleri almak ve ardından bunları ada göre artan sırada sıralamak için kullanılabilir.

Node.js

const results = await db.pipeline()
  .collection('/cities')
  .sort(field('name').ascending())
  .execute();

Bu sorgu aşağıdaki belgeleri oluşturur:

  {name: 'Chicago', state: 'Illinois'}
  {name: 'New York City', state: 'New York'}
  {name: 'San Francisco', state: 'California'}

Alt koleksiyonlar

Aşamanın tam yolu sağlanarak belirli bir üst öğe altındaki koleksiyonları hedeflemek için de collection aşaması kullanılabilir.

Örneğin, aşağıdaki belgeler için:

Node.js

await db.collection('cities/SF/departments').doc('building').set({name: 'SF Building Deparment', employees: 750});
await db.collection('cities/NY/departments').doc('building').set({name: 'NY Building Deparment', employees: 1000});
await db.collection('cities/CHI/departments').doc('building').set({name: 'CHI Building Deparment', employees: 900});
await db.collection('cities/NY/departments').doc('finance').set({name: 'NY Finance Deparment', employees: 1200});

Bu örnekte, yalnızca New York şehrindeki departmanları istiyoruz.

Node.js

const results = await db.pipeline()
  .collection('/cities/NY/departments')
  .sort(field('employees').ascending())
  .execute();

Bu işlem, tam yol cities/NY/departments altındaki tüm departmanları döndürür.

  {name: 'NY Building Deparment', employees: 1000}
  {name: 'NY Finance Deparment', employees: 1200}