获取我们在 Firebase 峰会上发布的所有信息,了解 Firebase 可如何帮助您加快应用开发速度并满怀信心地运行应用。了解详情

ক্লাউড ফায়ারস্টোরের সাথে ডেটা অর্ডার এবং সীমাবদ্ধ করুন

ক্লাউড ফায়ারস্টোর আপনি একটি সংগ্রহ থেকে কোন নথিগুলি পুনরুদ্ধার করতে চান তা নির্দিষ্ট করার জন্য শক্তিশালী ক্যোয়ারী কার্যকারিতা প্রদান করে৷ এই প্রশ্নগুলি get() বা addSnapshotListener() এর সাথেও ব্যবহার করা যেতে পারে, যেমন Get Data-তে বর্ণিত হয়েছে।

অর্ডার এবং ডেটা সীমাবদ্ধ করুন

ডিফল্টরূপে, একটি ক্যোয়ারী সমস্ত নথি পুনরুদ্ধার করে যা ডকুমেন্ট আইডি দ্বারা ক্রমবর্ধমান ক্রমে ক্যোয়ারীকে সন্তুষ্ট করে। আপনি orderBy() ব্যবহার করে আপনার ডেটার জন্য সাজানোর ক্রম নির্দিষ্ট করতে পারেন এবং আপনি limit() ব্যবহার করে পুনরুদ্ধার করা নথির সংখ্যা সীমিত করতে পারেন।

উদাহরণস্বরূপ, আপনি বর্ণানুক্রমিকভাবে প্রথম 3টি শহরের জন্য প্রশ্ন করতে পারেন:

Web version 9

import { query, orderBy, limit } from "firebase/firestore";  

const q = query(citiesRef, orderBy("name"), limit(3));

Web version 8

citiesRef.orderBy("name").limit(3);
সুইফট
দ্রষ্টব্য: এই পণ্যটি watchOS এবং অ্যাপ ক্লিপ লক্ষ্যে উপলব্ধ নয়।
citiesRef.order(by: "name").limit(to: 3)
উদ্দেশ্য গ
দ্রষ্টব্য: এই পণ্যটি watchOS এবং অ্যাপ ক্লিপ লক্ষ্যে উপলব্ধ নয়।
[[citiesRef queryOrderedByField:@"name"] queryLimitedTo:3];

Java

citiesRef.orderBy("name").limit(3);

Kotlin+KTX

citiesRef.orderBy("name").limit(3)

Dart

final citiesRef = db.collection("cities");
citiesRef.orderBy("name").limit(3);
জাভা
Query query = cities.orderBy("name").limit(3);
Query query = cities.orderBy("name").limitToLast(3);
পাইথন
cities_ref = db.collection("cities")
query = cities_ref.order_by("name").limit_to_last(2)
results = query.get()

Python

cities_ref = db.collection("cities")
query = cities_ref.order_by("name").limit_to_last(2)
results = await query.get()
সি++
cities_ref.OrderBy("name").Limit(3);
Node.js
const firstThreeRes = await citiesRef.orderBy('name').limit(3).get();
যাওয়া
query := cities.OrderBy("name", firestore.Asc).Limit(3)
query := cities.OrderBy("name", firestore.Asc).LimitToLast(3)
পিএইচপি

পিএইচপি

একটি ক্লাউড ফায়ারস্টোর ক্লায়েন্ট ইনস্টল এবং তৈরি করার বিষয়ে আরও জানতে, ক্লাউড ফায়ারস্টোর ক্লায়েন্ট লাইব্রেরি দেখুন।

$query = $citiesRef->orderBy('name')->limit(3);
ঐক্য
Query query = citiesRef.OrderBy("Name").Limit(3);
সি#

সি#

একটি ক্লাউড ফায়ারস্টোর ক্লায়েন্ট ইনস্টল এবং তৈরি করার বিষয়ে আরও জানতে, ক্লাউড ফায়ারস্টোর ক্লায়েন্ট লাইব্রেরি দেখুন।

Query query = citiesRef.OrderBy("Name").Limit(3);
রুবি
query = cities_ref.order("name").limit(3)

আপনি শেষ 3টি শহর পেতে নিচের ক্রম অনুসারে সাজাতে পারেন:

Web version 9

import { query, orderBy, limit } from "firebase/firestore";  

const q = query(citiesRef, orderBy("name", "desc"), limit(3));

Web version 8

citiesRef.orderBy("name", "desc").limit(3);
সুইফট
দ্রষ্টব্য: এই পণ্যটি watchOS এবং অ্যাপ ক্লিপ লক্ষ্যে উপলব্ধ নয়।
citiesRef.order(by: "name", descending: true).limit(to: 3)
উদ্দেশ্য গ
দ্রষ্টব্য: এই পণ্যটি watchOS এবং অ্যাপ ক্লিপ লক্ষ্যে উপলব্ধ নয়।
[[citiesRef queryOrderedByField:@"name" descending:YES] queryLimitedTo:3];

Java

citiesRef.orderBy("name", Direction.DESCENDING).limit(3);

Kotlin+KTX

citiesRef.orderBy("name", Query.Direction.DESCENDING).limit(3)

Dart

final citiesRef = db.collection("cities");
citiesRef.orderBy("name", descending: true).limit(3);
জাভা
Query query = cities.orderBy("name", Direction.DESCENDING).limit(3);
পাইথন
cities_ref = db.collection(u'cities')
query = cities_ref.order_by(
    u'name', direction=firestore.Query.DESCENDING).limit(3)
results = query.stream()

Python

cities_ref = db.collection("cities")
query = cities_ref.order_by("name", direction=firestore.Query.DESCENDING).limit(3)
results = query.stream()
সি++
cities_ref.OrderBy("name", Query::Direction::kDescending).Limit(3);
Node.js
const lastThreeRes = await citiesRef.orderBy('name', 'desc').limit(3).get();
যাওয়া
query := cities.OrderBy("name", firestore.Desc).Limit(3)
পিএইচপি

পিএইচপি

একটি ক্লাউড ফায়ারস্টোর ক্লায়েন্ট ইনস্টল এবং তৈরি করার বিষয়ে আরও জানতে, ক্লাউড ফায়ারস্টোর ক্লায়েন্ট লাইব্রেরি দেখুন।

$query = $citiesRef->orderBy('name', 'DESC')->limit(3);
ঐক্য
Query query = citiesRef.OrderByDescending("Name").Limit(3);
সি#

সি#

একটি ক্লাউড ফায়ারস্টোর ক্লায়েন্ট ইনস্টল এবং তৈরি করার বিষয়ে আরও জানতে, ক্লাউড ফায়ারস্টোর ক্লায়েন্ট লাইব্রেরি দেখুন।

Query query = citiesRef.OrderByDescending("Name").Limit(3);
রুবি
query = cities_ref.order("name", "desc").limit(3)

আপনি একাধিক ক্ষেত্র দ্বারা অর্ডার করতে পারেন। উদাহরণস্বরূপ, আপনি যদি রাজ্য অনুসারে অর্ডার করতে চান, এবং প্রতিটি রাজ্যের মধ্যে জনসংখ্যার ক্রম অনুসারে:

Web version 9

import { query, orderBy } from "firebase/firestore";  

const q = query(citiesRef, orderBy("state"), orderBy("population", "desc"));

Web version 8

citiesRef.orderBy("state").orderBy("population", "desc");
সুইফট
দ্রষ্টব্য: এই পণ্যটি watchOS এবং অ্যাপ ক্লিপ লক্ষ্যে উপলব্ধ নয়।
citiesRef
    .order(by: "state")
    .order(by: "population", descending: true)
উদ্দেশ্য গ
দ্রষ্টব্য: এই পণ্যটি watchOS এবং অ্যাপ ক্লিপ লক্ষ্যে উপলব্ধ নয়।
[[citiesRef queryOrderedByField:@"state"] queryOrderedByField:@"population" descending:YES];

Java

citiesRef.orderBy("state").orderBy("population", Direction.DESCENDING);

Kotlin+KTX

citiesRef.orderBy("state").orderBy("population", Query.Direction.DESCENDING)

Dart

final citiesRef = db.collection("cities");
citiesRef.orderBy("state").orderBy("population", descending: true);
জাভা
Query query = cities.orderBy("state").orderBy("population", Direction.DESCENDING);
পাইথন
cities_ref = db.collection(u'cities')
cities_ref.order_by(u'state').order_by(
    u'population', direction=firestore.Query.DESCENDING)

Python

cities_ref = db.collection("cities")
cities_ref.order_by("state").order_by(
    "population", direction=firestore.Query.DESCENDING
)
সি++
cities_ref.OrderBy("state").OrderBy("name", Query::Direction::kDescending);
Node.js
const byStateByPopRes = await citiesRef.orderBy('state').orderBy('population', 'desc').get();
যাওয়া
query := client.Collection("cities").OrderBy("state", firestore.Asc).OrderBy("population", firestore.Desc)
পিএইচপি

পিএইচপি

একটি ক্লাউড ফায়ারস্টোর ক্লায়েন্ট ইনস্টল এবং তৈরি করার বিষয়ে আরও জানতে, ক্লাউড ফায়ারস্টোর ক্লায়েন্ট লাইব্রেরি দেখুন।

$query = $citiesRef->orderBy('state')->orderBy('population', 'DESC');
ঐক্য
Query query = citiesRef.OrderBy("State").OrderByDescending("Population");
সি#

সি#

একটি ক্লাউড ফায়ারস্টোর ক্লায়েন্ট ইনস্টল এবং তৈরি করার বিষয়ে আরও জানতে, ক্লাউড ফায়ারস্টোর ক্লায়েন্ট লাইব্রেরি দেখুন।

Query query = citiesRef.OrderBy("State").OrderByDescending("Population");
রুবি
query = cities_ref.order("state").order("population", "desc")

আপনি orderBy() এবং limit() এর সাথে where where() ফিল্টারগুলিকে একত্রিত করতে পারেন। নিম্নলিখিত উদাহরণে, কোয়েরিগুলি একটি জনসংখ্যার থ্রেশহোল্ডকে সংজ্ঞায়িত করে, জনসংখ্যা অনুসারে ক্রমবর্ধমান ক্রমে সাজান এবং শুধুমাত্র প্রথম কয়েকটি ফলাফল প্রদান করে যা থ্রেশহোল্ড অতিক্রম করে:

Web version 9

import { query, where, orderBy, limit } from "firebase/firestore";  

const q = query(citiesRef, where("population", ">", 100000), orderBy("population"), limit(2));

Web version 8

citiesRef.where("population", ">", 100000).orderBy("population").limit(2);
সুইফট
দ্রষ্টব্য: এই পণ্যটি watchOS এবং অ্যাপ ক্লিপ লক্ষ্যে উপলব্ধ নয়।
citiesRef
    .whereField("population", isGreaterThan: 100000)
    .order(by: "population")
    .limit(to: 2)
উদ্দেশ্য গ
দ্রষ্টব্য: এই পণ্যটি watchOS এবং অ্যাপ ক্লিপ লক্ষ্যে উপলব্ধ নয়।
[[[citiesRef queryWhereField:@"population" isGreaterThan:@100000]
    queryOrderedByField:@"population"]
    queryLimitedTo:2];

Java

citiesRef.whereGreaterThan("population", 100000).orderBy("population").limit(2);

Kotlin+KTX

citiesRef.whereGreaterThan("population", 100000).orderBy("population").limit(2)

Dart

final citiesRef = db.collection("cities");
citiesRef
    .where("population", isGreaterThan: 100000)
    .orderBy("population")
    .limit(2);
জাভা
Query query = cities.whereGreaterThan("population", 2500000L).orderBy("population").limit(2);
পাইথন
cities_ref = db.collection(u'cities')
query = cities_ref.where(
    u'population', u'>', 2500000).order_by(u'population').limit(2)
results = query.stream()

Python

cities_ref = db.collection("cities")
query = cities_ref.where("population", ">", 2500000).order_by("population").limit(2)
results = query.stream()
সি++
cities_ref.WhereGreaterThan("population", FieldValue::Integer(100000))
    .OrderBy("population")
    .Limit(2);
Node.js
const biggestRes = await citiesRef.where('population', '>', 2500000)
  .orderBy('population').limit(2).get();
যাওয়া
query := cities.Where("population", ">", 2500000).OrderBy("population", firestore.Desc).Limit(2)
পিএইচপি

পিএইচপি

একটি ক্লাউড ফায়ারস্টোর ক্লায়েন্ট ইনস্টল এবং তৈরি করার বিষয়ে আরও জানতে, ক্লাউড ফায়ারস্টোর ক্লায়েন্ট লাইব্রেরি দেখুন।

$query = $citiesRef
    ->where('population', '>', 2500000)
    ->orderBy('population')
    ->limit(2);
ঐক্য
Query query = citiesRef
    .WhereGreaterThan("Population", 2500000)
    .OrderBy("Population")
    .Limit(2);
সি#

সি#

একটি ক্লাউড ফায়ারস্টোর ক্লায়েন্ট ইনস্টল এবং তৈরি করার বিষয়ে আরও জানতে, ক্লাউড ফায়ারস্টোর ক্লায়েন্ট লাইব্রেরি দেখুন।

Query query = citiesRef
    .WhereGreaterThan("Population", 2500000)
    .OrderBy("Population")
    .Limit(2);
রুবি
query = cities_ref.where("population", ">", 2_500_000).order("population").limit(2)

যাইহোক, যদি আপনার একটি পরিসীমা তুলনা সহ একটি ফিল্টার থাকে ( < , <= , > , >= ), আপনার প্রথম অর্ডার একই ক্ষেত্রে হতে হবে, নীচে orderBy() সীমাবদ্ধতার তালিকা দেখুন।

সীমাবদ্ধতা

orderBy() ধারাগুলির জন্য নিম্নলিখিত বিধিনিষেধগুলি নোট করুন:

  • একটি orderBy() ক্লজ প্রদত্ত ক্ষেত্রগুলির অস্তিত্বের জন্য ফিল্টার করে। ফলাফল সেটে এমন নথি অন্তর্ভুক্ত করা হবে না যেগুলিতে প্রদত্ত ক্ষেত্রগুলি নেই৷
  • যদি আপনি একটি পরিসীমা তুলনা সহ একটি ফিল্টার অন্তর্ভুক্ত করেন ( < , <= , > , >= ), আপনার প্রথম অর্ডার একই ক্ষেত্রে হতে হবে:

    বৈধ : একই ক্ষেত্রে পরিসীমা ফিল্টার এবং orderBy দ্বারা

    Web version 9

    import { query, where, orderBy } from "firebase/firestore";  
    
    const q = query(citiesRef, where("population", ">", 100000), orderBy("population"));

    Web version 8

    citiesRef.where("population", ">", 100000).orderBy("population");
    সুইফট
    দ্রষ্টব্য: এই পণ্যটি watchOS এবং অ্যাপ ক্লিপ লক্ষ্যে উপলব্ধ নয়।
    citiesRef
        .whereField("population", isGreaterThan: 100000)
        .order(by: "population")
    উদ্দেশ্য গ
    দ্রষ্টব্য: এই পণ্যটি watchOS এবং অ্যাপ ক্লিপ লক্ষ্যে উপলব্ধ নয়।
    [[citiesRef queryWhereField:@"population" isGreaterThan:@100000]
        queryOrderedByField:@"population"];

    Java

    citiesRef.whereGreaterThan("population", 100000).orderBy("population");

    Kotlin+KTX

    citiesRef.whereGreaterThan("population", 100000).orderBy("population")

    Dart

    final citiesRef = db.collection("cities");
    citiesRef.where("population", isGreaterThan: 100000).orderBy("population");
    জাভা
    Query query = cities.whereGreaterThan("population", 2500000L).orderBy("population");
    পাইথন
    cities_ref = db.collection(u'cities')
    query = cities_ref.where(
        u'population', u'>', 2500000).order_by(u'population')
    results = query.stream()

    Python

    cities_ref = db.collection("cities")
    query = cities_ref.where("population", ">", 2500000).order_by("population")
    results = query.stream()
    Node.js
    citiesRef.where('population', '>', 2500000).orderBy('population');
    যাওয়া
    query := cities.Where("population", ">", 2500000).OrderBy("population", firestore.Asc)
    পিএইচপি

    পিএইচপি

    একটি ক্লাউড ফায়ারস্টোর ক্লায়েন্ট ইনস্টল এবং তৈরি করার বিষয়ে আরও জানতে, ক্লাউড ফায়ারস্টোর ক্লায়েন্ট লাইব্রেরি দেখুন।

    $query = $citiesRef
        ->where('population', '>', 2500000)
        ->orderBy('population');
    ঐক্য
    Query query = citiesRef
        .WhereGreaterThan("Population", 2500000)
        .OrderBy("Population");
    সি#

    সি#

    একটি ক্লাউড ফায়ারস্টোর ক্লায়েন্ট ইনস্টল এবং তৈরি করার বিষয়ে আরও জানতে, ক্লাউড ফায়ারস্টোর ক্লায়েন্ট লাইব্রেরি দেখুন।

    Query query = citiesRef
        .WhereGreaterThan("Population", 2500000)
        .OrderBy("Population");
    রুবি
    query = cities_ref.where("population", ">", 2_500_000).order("population")

    অবৈধ : বিভিন্ন ক্ষেত্রে পরিসর ফিল্টার এবং প্রথম orderBy দ্বারা

    Web version 9

    import { query, where, orderBy } from "firebase/firestore";  
    
    const q = query(citiesRef, where("population", ">", 100000), orderBy("country"));

    Web version 8

    citiesRef.where("population", ">", 100000).orderBy("country");
    সুইফট
    দ্রষ্টব্য: এই পণ্যটি watchOS এবং অ্যাপ ক্লিপ লক্ষ্যে উপলব্ধ নয়।
    citiesRef
        .whereField("population", isGreaterThan: 100000)
        .order(by: "country")
    উদ্দেশ্য গ
    দ্রষ্টব্য: এই পণ্যটি watchOS এবং অ্যাপ ক্লিপ লক্ষ্যে উপলব্ধ নয়।
    [[citiesRef queryWhereField:@"population" isGreaterThan:@100000] queryOrderedByField:@"country"];

    Java

    citiesRef.whereGreaterThan("population", 100000).orderBy("country");

    Kotlin+KTX

    citiesRef.whereGreaterThan("population", 100000).orderBy("country")

    Dart

    final citiesRef = db.collection("cities");
    citiesRef.where("population", isGreaterThan: 100000).orderBy("country");
    জাভা
    Query query = cities.whereGreaterThan("population", 2500000L).orderBy("country");
    পাইথন
    cities_ref = db.collection(u'cities')
    query = cities_ref.where(u'population', u'>', 2500000).order_by(u'country')
    results = query.stream()

    Python

    cities_ref = db.collection("cities")
    query = cities_ref.where("population", ">", 2500000).order_by("country")
    results = query.stream()
    সি++
    // BAD EXAMPLE -- will crash the program:
    cities_ref.WhereGreaterThan("population", FieldValue::Integer(100000))
        .OrderBy("country");
    Node.js
    citiesRef.where('population', '>', 2500000).orderBy('country');
    যাওয়া
    // Note: This is an invalid query. It violates the constraint that range
    // and order by are required to be on the same field.
    query := cities.Where("population", ">", 2500000).OrderBy("country", firestore.Asc)
    পিএইচপি

    পিএইচপি

    একটি ক্লাউড ফায়ারস্টোর ক্লায়েন্ট ইনস্টল এবং তৈরি করার বিষয়ে আরও জানতে, ক্লাউড ফায়ারস্টোর ক্লায়েন্ট লাইব্রেরি দেখুন।

    $invalidRangeQuery = $citiesRef
        ->where('population', '>', 2500000)
        ->orderBy('country');
    ঐক্য
    Query query = citiesRef
        .WhereGreaterThan("Population", 2500000)
        .OrderBy("Country");
    সি#

    সি#

    একটি ক্লাউড ফায়ারস্টোর ক্লায়েন্ট ইনস্টল এবং তৈরি করার বিষয়ে আরও জানতে, ক্লাউড ফায়ারস্টোর ক্লায়েন্ট লাইব্রেরি দেখুন।

    Query query = citiesRef
        .WhereGreaterThan("Population", 2500000)
        .OrderBy("Country");
    রুবি
    query = cities_ref.where("population", ">", 2_500_000).order("country")
  • আপনি একটি সমতা ( = ) বা ধারায় in কোনো ক্ষেত্র দ্বারা আপনার ক্যোয়ারী অর্ডার করতে পারবেন না।