বর্ণনা
পূর্বনির্ধারিত নথির একটি নির্দিষ্ট সেট থেকে অনুসন্ধান করে নথিগুলো ফেরত দেয়।
এই পর্যায়ে ইনপুট হিসেবে এক বা একাধিক ডকুমেন্ট গ্রহণ করতে হবে এবং এতে সদৃশ পাথযুক্ত কোনো ডকুমেন্ট থাকতে পারবে না। যদি উল্লেখিত ডকুমেন্টটির অস্তিত্ব না থাকে, তবে সেই ডকুমেন্ট পাথের জন্য কোনো ফলাফল তৈরি করা হবে না।
এই পর্যায়টি Cloud Firestore -এর batchGet এর মতোই কাজ করে এবং ব্যাচ অপারেশনের পরে পোস্ট-ফিল্টারিং ধাপগুলো সম্পাদন না করেই সরাসরি ফলাফলের উপর ফিল্টার করার সুযোগ দেয়।
উদাহরণ
Web
const results = await execute(db.pipeline() .documents([ doc(db, "cities", "SF"), doc(db, "cities", "DC"), doc(db, "cities", "NY") ]) );
সুইফট
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();
পাইথন
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();
যান
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(...) ` পর্যায় ব্যবহার করা যেতে পারে।
উদাহরণস্বরূপ, নিম্নলিখিত নথিগুলির জন্য:
নোড.জেএস
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 নথিগুলো পুনরুদ্ধার করা যায় এবং তারপর সেগুলোকে নামের আরোহী ক্রমে সাজানো যায়।
নোড.জেএস
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" }