লজিক্যাল ফাংশন

লজিক্যাল ফাংশন

নাম বিবরণ
AND একটি লজিক্যাল AND সম্পাদন করে
OR একটি লজিক্যাল OR সম্পাদন করে
XOR একটি লজিক্যাল XOR সম্পাদন করে
NOT একটি লজিক্যাল NOT সম্পাদন করে
CONDITIONAL একটি শর্তসাপেক্ষ রাশির উপর ভিত্তি করে শাখা মূল্যায়ন।
EQUAL_ANY একটি অ্যারের যেকোনো এলিমেন্টের মান সমান কিনা তা পরীক্ষা করে।
NOT_EQUAL_ANY একটি অ্যারের কোনও উপাদানের মান সমান কিনা তা পরীক্ষা করে।
MAXIMUM মানগুলির একটি সেটের সর্বোচ্চ মান প্রদান করে
MINIMUM মানগুলির একটি সেটের সর্বনিম্ন মান প্রদান করে

এবং

বাক্য গঠন:

and(x: BOOLEAN...) -> BOOLEAN

বর্ণনা:

দুই বা ততোধিক বুলিয়ান মানের লজিক্যাল AND প্রদান করে।

প্রদত্ত মানগুলির মধ্যে কোনও একটি ABSENT বা NULL হওয়ার কারণে ফলাফল বের করা না গেলে NULL প্রদান করে।

উদাহরণ:

x y and(x, y)
TRUE TRUE TRUE
FALSE TRUE FALSE
NULL TRUE NULL
ABSENT TRUE NULL
NULL FALSE FALSE
FALSE ABSENT FALSE

Web

const result = await execute(db.pipeline()
  .collection("books")
  .select(
    and(field("rating").greaterThan(4), field("price").lessThan(10))
      .as("under10Recommendation")
  )
);
সুইফট
let result = try await db.pipeline()
  .collection("books")
  .select([
    (Field("rating").greaterThan(4) && Field("price").lessThan(10))
      .as("under10Recommendation")
  ])
  .execute()

Kotlin

val result = db.pipeline()
    .collection("books")
    .select(
        Expression.and(field("rating").greaterThan(4),
          field("price").lessThan(10))
            .alias("under10Recommendation")
    )
    .execute()

Java

Task<Pipeline.Snapshot> result = db.pipeline()
    .collection("books")
    .select(
        Expression.and(
            field("rating").greaterThan(4),
            field("price").lessThan(10)
        ).alias("under10Recommendation")
    )
    .execute();
পাইথন
from google.cloud.firestore_v1.pipeline_expressions import Field, And

result = (
    client.pipeline()
    .collection("books")
    .select(
        And(
            Field.of("rating").greater_than(4), Field.of("price").less_than(10)
        ).as_("under10Recommendation")
    )
    .execute()
)

অথবা

বাক্য গঠন:

or(x: BOOLEAN...) -> BOOLEAN

বর্ণনা:

দুই বা ততোধিক বুলিয়ান মানের লজিক্যাল OR প্রদান করে।

প্রদত্ত মানগুলির মধ্যে কোনও একটি ABSENT বা NULL হওয়ার কারণে ফলাফল বের করা না গেলে NULL প্রদান করে।

উদাহরণ:

x y or(x, y)
TRUE TRUE TRUE
FALSE TRUE TRUE
NULL TRUE TRUE
ABSENT TRUE TRUE
NULL FALSE NULL
FALSE ABSENT NULL

Web

const result = await execute(db.pipeline()
  .collection("books")
  .select(
    or(field("genre").equal("Fantasy"), field("tags").arrayContains("adventure"))
      .as("matchesSearchFilters")
  )
);
সুইফট
let result = try await db.pipeline()
  .collection("books")
  .select([
    (Field("genre").equal("Fantasy") || Field("tags").arrayContains("adventure"))
      .as("matchesSearchFilters")
  ])
  .execute()

Kotlin

val result = db.pipeline()
    .collection("books")
    .select(
        Expression.or(field("genre").equal("Fantasy"),
          field("tags").arrayContains("adventure"))
            .alias("matchesSearchFilters")
    )
    .execute()

Java

Task<Pipeline.Snapshot> result = db.pipeline()
    .collection("books")
    .select(
        Expression.or(
            field("genre").equal("Fantasy"),
            field("tags").arrayContains("adventure")
        ).alias("matchesSearchFilters")
    )
    .execute();
পাইথন
from google.cloud.firestore_v1.pipeline_expressions import Field, And, Or

result = (
    client.pipeline()
    .collection("books")
    .select(
        Or(
            Field.of("genre").equal("Fantasy"),
            Field.of("tags").array_contains("adventure"),
        ).as_("matchesSearchFilters")
    )
    .execute()
)

XOR সম্পর্কে

বাক্য গঠন:

xor(x: BOOLEAN...) -> BOOLEAN

বর্ণনা:

দুই বা ততোধিক বুলিয়ান মানের লজিক্যাল XOR প্রদান করে।

প্রদত্ত মানগুলির মধ্যে যদি কোনও একটি ABSENT বা NULL হয়, তাহলে NULL প্রদান করে।

উদাহরণ:

x y xor(x, y)
TRUE TRUE FALSE
FALSE FALSE FALSE
FALSE TRUE TRUE
NULL TRUE NULL
ABSENT TRUE NULL
NULL FALSE NULL
FALSE ABSENT NULL

Web

const result = await execute(db.pipeline()
  .collection("books")
  .select(
    xor(field("tags").arrayContains("magic"), field("tags").arrayContains("nonfiction"))
      .as("matchesSearchFilters")
  )
);
সুইফট
let result = try await db.pipeline()
  .collection("books")
  .select([
    (Field("tags").arrayContains("magic") ^ Field("tags").arrayContains("nonfiction"))
      .as("matchesSearchFilters")
  ])
  .execute()

Kotlin

val result = db.pipeline()
    .collection("books")
    .select(
        Expression.xor(field("tags").arrayContains("magic"),
          field("tags").arrayContains("nonfiction"))
            .alias("matchesSearchFilters")
    )
    .execute()

Java

Task<Pipeline.Snapshot> result = db.pipeline()
    .collection("books")
    .select(
        Expression.xor(
            field("tags").arrayContains("magic"),
            field("tags").arrayContains("nonfiction")
        ).alias("matchesSearchFilters")
    )
    .execute();
পাইথন
from google.cloud.firestore_v1.pipeline_expressions import Field, Xor

result = (
    client.pipeline()
    .collection("books")
    .select(
        Xor(
            [
                Field.of("tags").array_contains("magic"),
                Field.of("tags").array_contains("nonfiction"),
            ]
        ).as_("matchesSearchFilters")
    )
    .execute()
)

না

বাক্য গঠন:

not(x: BOOLEAN) -> BOOLEAN

বর্ণনা:

একটি বুলিয়ান মানের লজিক্যাল NOT প্রদান করে।

Web

const result = await execute(db.pipeline()
  .collection("books")
  .select(
    field("tags").arrayContains("nonfiction").not()
      .as("isFiction")
  )
);
সুইফট
let result = try await db.pipeline()
  .collection("books")
  .select([
    (!Field("tags").arrayContains("nonfiction"))
      .as("isFiction")
  ])
  .execute()

Kotlin

val result = db.pipeline()
    .collection("books")
    .select(
        Expression.not(
            field("tags").arrayContains("nonfiction")
        ).alias("isFiction")
    )
    .execute()

Java

Task<Pipeline.Snapshot> result = db.pipeline()
    .collection("books")
    .select(
        Expression.not(
            field("tags").arrayContains("nonfiction")
        ).alias("isFiction")
    )
    .execute();
পাইথন
from google.cloud.firestore_v1.pipeline_expressions import Field, Not

result = (
    client.pipeline()
    .collection("books")
    .select(Not(Field.of("tags").array_contains("nonfiction")).as_("isFiction"))
    .execute()
)

শর্তাধীন

বাক্য গঠন:

conditional(condition: BOOLEAN, true_case: ANY, false_case: ANY) -> ANY

বর্ণনা:

যদি condition TRUE তে মূল্যায়ন করা হয়, তাহলে true_case মূল্যায়ন করে এবং ফেরত দেয়।

যদি শর্তটি FALSE , NULL , অথবা ABSENT মান সমাধান করে, তাহলে false_case মূল্যায়ন করে এবং ফেরত পাঠায়।

উদাহরণ:

condition true_case false_case conditional(condition, true_case, false_case)
TRUE ১ লিটার ০ লিটার ১ লিটার
FALSE ১ লিটার ০ লিটার ০ লিটার
NULL ১ লিটার ০ লিটার ০ লিটার
ABSENT ১ লিটার ০ লিটার ০ লিটার

Web

const result = await execute(db.pipeline()
  .collection("books")
  .select(
    field("tags").arrayConcat([
      field("pages").greaterThan(100)
        .conditional(constant("longRead"), constant("shortRead"))
    ]).as("extendedTags")
  )
);
সুইফট
let result = try await db.pipeline()
  .collection("books")
  .select([
    Field("tags").arrayConcat([
      ConditionalExpression(
        Field("pages").greaterThan(100),
        then: Constant("longRead"),
        else: Constant("shortRead")
      )
    ]).as("extendedTags")
  ])
  .execute()

Kotlin

val result = db.pipeline()
    .collection("books")
    .select(
        field("tags").arrayConcat(
            Expression.conditional(
                field("pages").greaterThan(100),
                constant("longRead"),
                constant("shortRead")
            )
        ).alias("extendedTags")
    )
    .execute()

Java

Task<Pipeline.Snapshot> result = db.pipeline()
    .collection("books")
    .select(
        field("tags").arrayConcat(
            Expression.conditional(
                field("pages").greaterThan(100),
                constant("longRead"),
                constant("shortRead")
            )
        ).alias("extendedTags")
    )
    .execute();
পাইথন
from google.cloud.firestore_v1.pipeline_expressions import (
    Field,
    Constant,
    Conditional,
)

result = (
    client.pipeline()
    .collection("books")
    .select(
        Field.of("tags")
        .array_concat(
            Conditional(
                Field.of("pages").greater_than(100),
                Constant.of("longRead"),
                Constant.of("shortRead"),
            )
        )
        .as_("extendedTags")
    )
    .execute()
)

সমান_যেকোনো

বাক্য গঠন:

equal_any(value: ANY, search_space: ARRAY) -> BOOLEAN

বর্ণনা:

যদি value search_space অ্যারেতে থাকে, তাহলে TRUE প্রদান করে।

উদাহরণ:

value search_space equal_any(value, search_space)
০ লিটার [১ লিটার, ২ লিটার, ৩ লিটার] FALSE
২ লিটার [১ লিটার, ২ লিটার, ৩ লিটার] TRUE
NULL [১ লিটার, ২ লিটার, ৩ লিটার] FALSE
NULL [১লিটার, NULL ] TRUE
ABSENT [১লিটার, NULL ] FALSE
NaN সম্পর্কে [১লিটার, নাএন, ৩লিটার] TRUE

Web

const result = await execute(db.pipeline()
  .collection("books")
  .select(
    field("genre").equalAny(["Science Fiction", "Psychological Thriller"])
      .as("matchesGenreFilters")
  )
);
সুইফট
let result = try await db.pipeline()
  .collection("books")
  .select([
    Field("genre").equalAny(["Science Fiction", "Psychological Thriller"])
      .as("matchesGenreFilters")
  ])
  .execute()

Kotlin

val result = db.pipeline()
    .collection("books")
    .select(
        field("genre").equalAny(listOf("Science Fiction", "Psychological Thriller"))
            .alias("matchesGenreFilters")
    )
    .execute()

Java

Task<Pipeline.Snapshot> result = db.pipeline()
    .collection("books")
    .select(
        field("genre").equalAny(Arrays.asList("Science Fiction", "Psychological Thriller"))
            .alias("matchesGenreFilters")
    )
    .execute();
পাইথন
from google.cloud.firestore_v1.pipeline_expressions import Field

result = (
    client.pipeline()
    .collection("books")
    .select(
        Field.of("genre")
        .equal_any(["Science Fiction", "Psychological Thriller"])
        .as_("matchesGenreFilters")
    )
    .execute()
)

সমান নয়

বাক্য গঠন:

not_equal_any(value: ANY, search_space: ARRAY) -> BOOLEAN

বর্ণনা:

যদি value search_space অ্যারেতে না থাকে, তাহলে TRUE প্রদান করে।

উদাহরণ:

value search_space not_equal_any(value, search_space)
০ লিটার [১ লিটার, ২ লিটার, ৩ লিটার] TRUE
২ লিটার [১ লিটার, ২ লিটার, ৩ লিটার] FALSE
NULL [১ লিটার, ২ লিটার, ৩ লিটার] TRUE
NULL [১লিটার, NULL ] FALSE
ABSENT [১লিটার, NULL ] TRUE
NaN সম্পর্কে [১লিটার, নাএন, ৩লিটার] FALSE

Web

const result = await execute(db.pipeline()
  .collection("books")
  .select(
    field("author").notEqualAny(["George Orwell", "F. Scott Fitzgerald"])
      .as("byExcludedAuthors")
  )
);
সুইফট
let result = try await db.pipeline()
  .collection("books")
  .select([
    Field("author").notEqualAny(["George Orwell", "F. Scott Fitzgerald"])
      .as("byExcludedAuthors")
  ])
  .execute()

Kotlin

val result = db.pipeline()
    .collection("books")
    .select(
        field("author").notEqualAny(listOf("George Orwell", "F. Scott Fitzgerald"))
            .alias("byExcludedAuthors")
    )
    .execute()

Java

Task<Pipeline.Snapshot> result = db.pipeline()
    .collection("books")
    .select(
        field("author").notEqualAny(Arrays.asList("George Orwell", "F. Scott Fitzgerald"))
            .alias("byExcludedAuthors")
    )
    .execute();
পাইথন
from google.cloud.firestore_v1.pipeline_expressions import Field

result = (
    client.pipeline()
    .collection("books")
    .select(
        Field.of("author")
        .not_equal_any(["George Orwell", "F. Scott Fitzgerald"])
        .as_("byExcludedAuthors")
    )
    .execute()
)

সর্বাধিক

বাক্য গঠন:

maximum(x: ANY...) -> ANY
maximum(x: ARRAY) -> ANY

বর্ণনা:

x মানের একটি সিরিজে সর্বাধিক নন- NULL , নন- ABSENT মান প্রদান করে।

যদি কোন নন- NULL , নন- ABSENT মান না থাকে, তাহলে NULL প্রদান করা হয়।

যদি একাধিক সর্বোচ্চ সমতুল্য মান থাকে, তাহলে ঐ মানগুলির যেকোনো একটি ফেরত দেওয়া যেতে পারে। মান প্রকারের ক্রমবিন্যাস নথিভুক্ত ক্রম অনুসরণ করে।

উদাহরণ:

x y maximum(x, y)
FALSE TRUE TRUE
FALSE -১০ লিটার -১০ লিটার
০.০ -৫ লিটার ০.০
"ফু" "বার" "ফু"
"ফু" ["ফু"] ["ফু"]
ABSENT ABSENT NULL
NULL NULL NULL

Web

const result = await execute(db.pipeline()
  .collection("books")
  .aggregate(field("price").maximum().as("maximumPrice"))
);
সুইফট
let result = try await db.pipeline()
  .collection("books")
  .select([
    Field("rating").logicalMaximum([1]).as("flooredRating")
  ])
  .execute()

Kotlin

val result = db.pipeline()
    .collection("books")
    .select(
        field("rating").logicalMaximum(1).alias("flooredRating")
    )
    .execute()

Java

Task<Pipeline.Snapshot> result = db.pipeline()
    .collection("books")
    .select(
        field("rating").logicalMaximum(1).alias("flooredRating")
    )
    .execute();
পাইথন
from google.cloud.firestore_v1.pipeline_expressions import Field

result = (
    client.pipeline()
    .collection("books")
    .select(Field.of("rating").logical_maximum(1).as_("flooredRating"))
    .execute()
)

ন্যূনতম

বাক্য গঠন:

minimum(x: ANY...) -> ANY
minimum(x: ARRAY) -> ANY

বর্ণনা:

x মানের একটি সিরিজে সর্বনিম্ন নন- NULL , নন- ABSENT মান প্রদান করে।

যদি কোন নন- NULL , নন- ABSENT মান না থাকে, তাহলে NULL প্রদান করা হয়।

যদি একাধিক ন্যূনতম সমতুল্য মান থাকে, তাহলে ঐ মানগুলির যেকোনো একটি ফেরত দেওয়া যেতে পারে। মান প্রকারের ক্রমবিন্যাস নথিভুক্ত ক্রম অনুসরণ করে।

উদাহরণ:

x y minimum(x, y)
FALSE TRUE FALSE
FALSE -১০ লিটার FALSE
০.০ -৫ লিটার -৫ লিটার
"ফু" "বার" "বার"
"ফু" ["ফু"] "ফু"
ABSENT ABSENT NULL
NULL NULL NULL

Web

const result = await execute(db.pipeline()
  .collection("books")
  .aggregate(field("price").minimum().as("minimumPrice"))
);
সুইফট
let result = try await db.pipeline()
  .collection("books")
  .select([
    Field("rating").logicalMinimum([5]).as("cappedRating")
  ])
  .execute()

Kotlin

val result = db.pipeline()
    .collection("books")
    .select(
        field("rating").logicalMinimum(5).alias("cappedRating")
    )
    .execute()

Java

Task<Pipeline.Snapshot> result = db.pipeline()
    .collection("books")
    .select(
        field("rating").logicalMinimum(5).alias("cappedRating")
    )
    .execute();
পাইথন
from google.cloud.firestore_v1.pipeline_expressions import Field

result = (
    client.pipeline()
    .collection("books")
    .select(Field.of("rating").logical_minimum(5).as_("cappedRating"))
    .execute()
)