ब्यौरा
पहले से तय किए गए दस्तावेज़ों के सेट को देखकर, दस्तावेज़ दिखाता है.
स्टेज में, एक या उससे ज़्यादा दस्तावेज़ों को इनपुट के तौर पर लेना ज़रूरी है. साथ ही, इसमें डुप्लीकेट पाथ वाले दस्तावेज़ नहीं हो सकते. अगर रेफ़र किया गया कोई दस्तावेज़ मौजूद नहीं है, तो उस दस्तावेज़ के पाथ के लिए कोई नतीजा नहीं मिलेगा.
यह स्टेज, Cloud Firestore के batchGet की तरह काम करती है. साथ ही, बैच ऑपरेशन के बाद फ़िल्टर करने के बजाय, नतीजों को सीधे तौर पर फ़िल्टर करने की सुविधा देती है.
उदाहरण
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();
Go
snapshot := client.Pipeline(). Documents([]*firestore.DocumentRef{ client.Collection("cities").Doc("SF"), client.Collection("cities").Doc("DC"), client.Collection("cities").Doc("NY"), }). Execute(ctx)
व्यवहार
documents(...) स्टेज का इस्तेमाल करने के लिए, इसे पाइपलाइन में पहली स्टेज के तौर पर शामिल करना ज़रूरी है.
documents(...) स्टेज से मिले दस्तावेज़ों का क्रम तय नहीं होता. इसलिए, इस पर भरोसा नहीं किया जा सकता. क्रम तय करने के लिए, इसके बाद sort(...) स्टेज का इस्तेमाल किया जा सकता है.
उदाहरण के लिए, इन दस्तावेज़ों के लिए:
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(...) स्टेज का इस्तेमाल करके, सिर्फ़ SF और NYC दस्तावेज़ों को वापस पाया जा सकता है. इसके बाद, उन्हें नाम के हिसाब से बढ़ते क्रम में सॉर्ट किया जा सकता है.
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" }