Description
Renvoie tous les documents d'une collection donnée. La collection peut être imbriquée.
Syntaxe
Node.js
const results = await db.pipeline()
.collection('/cities/SF/departments')
.execute();
Exemples de clients
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();
Comportement
Pour utiliser l'étape collection, elle doit apparaître comme la première étape du pipeline.
L'ordre des documents renvoyés à partir de l'étape collection est instable et ne doit pas être considéré comme fiable. Une étape de tri ultérieure peut être utilisée pour obtenir un ordre déterministe.
Par exemple, pour les documents suivants :
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'});
L'étape collection peut être utilisée pour récupérer toutes les villes de la collection cities, puis les trier par ordre alphabétique.
Node.js
const results = await db.pipeline()
.collection('/cities')
.sort(field('name').ascending())
.execute();
Cette requête génère les documents suivants :
{name: 'Chicago', state: 'Illinois'}
{name: 'New York City', state: 'New York'}
{name: 'San Francisco', state: 'California'}
Sous-collections
L'étape collection peut également être utilisée pour cibler des collections sous un parent spécifique en fournissant le chemin d'accès complet à l'étape.
Par exemple, pour les documents suivants :
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});
Pour cet exemple, nous ne voulons que les services de la ville de New York.
Node.js
const results = await db.pipeline()
.collection('/cities/NY/departments')
.sort(field('employees').ascending())
.execute();
Cette commande renvoie tous les services sous le chemin d'accès complet cities/NY/departments.
{name: 'NY Building Deparment', employees: 1000}
{name: 'NY Finance Deparment', employees: 1200}