বর্ণনা
প্রদত্ত কোনো কালেকশন থেকে সমস্ত ডকুমেন্ট ফেরত দেয়। কালেকশনটি নেস্টেড হতে পারে।
উদাহরণ
Web
const results = await execute(db.pipeline() .collection("users/bob/games") .sort(field("name").ascending()) );
সুইফট
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();
পাইথন
from google.cloud.firestore_v1.pipeline_expressions import Field results = ( client.pipeline() .collection("users/bob/games") .sort(Field.of("name").ascending()) .execute() )
জাভা
Pipeline.Snapshot results = firestore .pipeline() .collection("users/bob/games") .sort(ascending(field("name"))) .execute() .get();
যান
snapshot := client.Pipeline(). Collection("users/bob/games"). Sort(firestore.Orders(firestore.Ascending(firestore.FieldOf("name")))). Execute(ctx)
আচরণ
collection(...) ` পর্যায়টি ব্যবহার করার জন্য, এটিকে অবশ্যই পাইপলাইন (বা সাব-পাইপলাইন)-এর প্রথম পর্যায় হিসেবে থাকতে হবে।
collection(...) পর্যায় থেকে প্রাপ্ত ডকুমেন্টগুলোর ক্রম অস্থিতিশীল এবং এর উপর নির্ভর করা যায় না। Firestore সবচেয়ে কার্যকর উপায়ে কোয়েরিটি চালানোর চেষ্টা করবে, যা স্কিমা বা ইনডেক্স কনফিগারেশনের উপর নির্ভর করে ক্রম পরিবর্তন করতে পারে। একটি সুনির্দিষ্ট ক্রম পাওয়ার জন্য পরবর্তী 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"});
await db.collection("states").doc("CA").set({name: "California"});
collection পর্যায়টি ব্যবহার করে cities সংগ্রহ থেকে সমস্ত শহর পুনরুদ্ধার করা যায় এবং তারপর সেগুলোকে নামের আরোহী ক্রমে সাজানো যায়।
নোড.জেএস
const results = await db.pipeline()
.collection("/cities")
.sort(field("name").ascending())
.execute();
এই কোয়েরিটি নিম্নলিখিত ডকুমেন্টগুলো তৈরি করে:
{ name: "Chicago", state: "Illinois" }
{ name: "New York City", state: "New York" }
{ name: "San Francisco", state: "California" }
উপ-সংগ্রহ
স্টেজের সম্পূর্ণ পাথ প্রদান করে collection(...) স্টেজটি কোনো নির্দিষ্ট প্যারেন্টের অধীনে থাকা কালেকশনগুলোকে টার্গেট করতেও ব্যবহার করা যেতে পারে।
উদাহরণস্বরূপ, নিম্নলিখিত নথিগুলির জন্য:
নোড.জেএস
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});
এই উদাহরণটির জন্য, আমরা শুধু নিউ ইয়র্ক শহরের বিভাগগুলো চাই।
নোড.জেএস
const results = await db.pipeline()
.collection("/cities/NY/departments")
.sort(field("employees").ascending())
.execute();
এটি cities/NY/departments এই সম্পূর্ণ পাথের অধীনে থাকা সমস্ত বিভাগ ফিরিয়ে দেবে।
{ name: "NY Building Deparment", employees: 1000 }
{ name: "NY Finance Deparment", employees: 1200 }