Hàm chuỗi
| Tên | Mô tả |
BYTE_LENGTH
|
Trả về số lượng BYTES trong giá trị STRING hoặc BYTES
|
CHAR_LENGTH
|
Trả về số lượng ký tự Unicode trong giá trị STRING
|
STARTS_WITH
|
Trả về TRUE nếu STRING bắt đầu bằng một tiền tố nhất định
|
ENDS_WITH
|
Trả về TRUE nếu STRING kết thúc bằng một hậu tố nhất định
|
LIKE
|
Trả về TRUE nếu STRING khớp với một mẫu
|
REGEX_CONTAINS
|
Trả về TRUE nếu một giá trị khớp một phần hoặc khớp hoàn toàn với một biểu thức chính quy
|
REGEX_MATCH
|
Trả về TRUE nếu bất kỳ phần nào của một giá trị khớp với một biểu thức chính quy
|
STRING_CONCAT
|
Nối nhiều STRING thành một STRING
|
STRING_CONTAINS
|
Trả về TRUE nếu một giá trị chứa STRING
|
TO_UPPER
|
Chuyển đổi giá trị STRING hoặc BYTES thành chữ hoa.
|
TO_LOWER
|
Chuyển đổi giá trị STRING hoặc BYTES thành chữ thường.
|
SUBSTRING
|
Lấy một chuỗi con của giá trị STRING hoặc BYTES.
|
STRING_REVERSE
|
Đảo ngược giá trị STRING hoặc BYTES.
|
TRIM
|
Cắt bỏ các ký tự ở đầu và cuối của giá trị STRING hoặc BYTES.
|
SPLIT
|
Chia giá trị STRING hoặc BYTES thành một mảng.
|
BYTE_LENGTH
Cú pháp:
byte_length[T <: STRING | BYTES](value: T) -> INT64
Nội dung mô tả:
Trả về số lượng BYTES trong giá trị STRING hoặc BYTES.
Ví dụ:
| value | byte_length(value) |
|---|---|
| "abc" | 3 |
| "xyzabc" | 6 |
| b"abc" | 3 |
Web
const result = await execute(db.pipeline() .collection("books") .select( field("title").byteLength().as("titleByteLength") ) );
Swift
let result = try await db.pipeline() .collection("books") .select([ Field("title").byteLength().as("titleByteLength") ]) .execute()
Kotlin
val result = db.pipeline() .collection("books") .select( field("title").byteLength().alias("titleByteLength") ) .execute()
Java
Task<Pipeline.Snapshot> result = db.pipeline() .collection("books") .select( field("title").byteLength().alias("titleByteLength") ) .execute();
Python
from google.cloud.firestore_v1.pipeline_expressions import Field result = ( client.pipeline() .collection("books") .select(Field.of("title").byte_length().as_("titleByteLength")) .execute() )
CHAR_LENGTH
Cú pháp:
char_length(value: STRING) -> INT64
Nội dung mô tả:
Trả về số lượng điểm mã Unicode trong giá trị STRING.
Ví dụ:
| value | char_length(value) |
|---|---|
| "abc" | 3 |
| "xin chào" | 5 |
| "thế giới" | 5 |
Web
const result = await execute(db.pipeline() .collection("books") .select( field("title").charLength().as("titleCharLength") ) );
Swift
let result = try await db.pipeline() .collection("books") .select([ Field("title").charLength().as("titleCharLength") ]) .execute()
Kotlin
val result = db.pipeline() .collection("books") .select( field("title").charLength().alias("titleCharLength") ) .execute()
Java
Task<Pipeline.Snapshot> result = db.pipeline() .collection("books") .select( field("title").charLength().alias("titleCharLength") ) .execute();
Python
from google.cloud.firestore_v1.pipeline_expressions import Field result = ( client.pipeline() .collection("books") .select(Field.of("title").char_length().as_("titleCharLength")) .execute() )
STARTS_WITH
Cú pháp:
starts_with(value: STRING, prefix: STRING) -> BOOLEAN
Nội dung mô tả:
Trả về TRUE nếu value bắt đầu bằng prefix.
Ví dụ:
| value | tiền tố | starts_with(value, prefix) |
|---|---|---|
| "abc" | "a" | đúng |
| "abc" | "b" | false |
| "abc" | "" | đúng |
Web
const result = await execute(db.pipeline() .collection("books") .select( field("title").startsWith("The") .as("needsSpecialAlphabeticalSort") ) );
Swift
let result = try await db.pipeline() .collection("books") .select([ Field("title").startsWith("The") .as("needsSpecialAlphabeticalSort") ]) .execute()
Kotlin
val result = db.pipeline() .collection("books") .select( field("title").startsWith("The") .alias("needsSpecialAlphabeticalSort") ) .execute()
Java
Task<Pipeline.Snapshot> result = db.pipeline() .collection("books") .select( field("title").startsWith("The") .alias("needsSpecialAlphabeticalSort") ) .execute();
Python
from google.cloud.firestore_v1.pipeline_expressions import Field result = ( client.pipeline() .collection("books") .select( Field.of("title").starts_with("The").as_("needsSpecialAlphabeticalSort") ) .execute() )
ENDS_WITH
Cú pháp:
ends_with(value: STRING, postfix: STRING) -> BOOLEAN
Nội dung mô tả:
Trả về TRUE nếu value kết thúc bằng postfix.
Ví dụ:
| value | postfix | ends_with(value, postfix) |
|---|---|---|
| "abc" | "c" | đúng |
| "abc" | "b" | false |
| "abc" | "" | đúng |
Swift
let result = try await db.pipeline() .collection("inventory/devices/laptops") .select([ Field("name").endsWith("16 inch") .as("16InLaptops") ]) .execute()
Kotlin
val result = db.pipeline() .collection("inventory/devices/laptops") .select( field("name").endsWith("16 inch") .alias("16InLaptops") ) .execute()
Java
Task<Pipeline.Snapshot> result = db.pipeline() .collection("inventory/devices/laptops") .select( field("name").endsWith("16 inch") .alias("16InLaptops") ) .execute();
Python
from google.cloud.firestore_v1.pipeline_expressions import Field result = ( client.pipeline() .collection("inventory/devices/laptops") .select(Field.of("name").ends_with("16 inch").as_("16InLaptops")) .execute() )
THÍCH
Cú pháp:
like(value: STRING, pattern: STRING) -> BOOLEAN
Nội dung mô tả:
Trả về TRUE nếu value khớp với pattern.
Ví dụ:
| value | hoa văn | like(value, pattern) |
|---|---|---|
| "Firestore" | "Fire%" | đúng |
| "Firestore" | "%store" | đúng |
| "Datastore" | "Data_tore" | đúng |
| "100%" | "100%" | đúng |
Web
const result = await execute(db.pipeline() .collection("books") .select( field("genre").like("%Fiction") .as("anyFiction") ) );
Swift
let result = try await db.pipeline() .collection("books") .select([ Field("genre").like("%Fiction") .as("anyFiction") ]) .execute()
Kotlin
val result = db.pipeline() .collection("books") .select( field("genre").like("%Fiction") .alias("anyFiction") ) .execute()
Java
Task<Pipeline.Snapshot> result = db.pipeline() .collection("books") .select( field("genre").like("%Fiction") .alias("anyFiction") ) .execute();
Python
from google.cloud.firestore_v1.pipeline_expressions import Field result = ( client.pipeline() .collection("books") .select(Field.of("genre").like("%Fiction").as_("anyFiction")) .execute() )
REGEX_CONTAINS
Cú pháp:
regex_contains(value: STRING, pattern: STRING) -> BOOLEAN
Nội dung mô tả:
Trả về TRUE nếu một phần của value khớp với pattern. Nếu pattern không phải là một biểu thức chính quy hợp lệ, thì hàm này sẽ trả về error.
Biểu thức chính quy tuân theo cú pháp của thư viện re2.
Ví dụ:
| value | hoa văn | regex_contains(value, pattern) |
|---|---|---|
| "Firestore" | "Lửa" | đúng |
| "Firestore" | "store$" | đúng |
| "Firestore" | "data" | false |
Web
const result = await execute(db.pipeline() .collection("documents") .select( field("title").regexContains("Firestore (Enterprise|Standard)") .as("isFirestoreRelated") ) );
Swift
let result = try await db.pipeline() .collection("documents") .select([ Field("title").regexContains("Firestore (Enterprise|Standard)") .as("isFirestoreRelated") ]) .execute()
Kotlin
val result = db.pipeline() .collection("documents") .select( field("title").regexContains("Firestore (Enterprise|Standard)") .alias("isFirestoreRelated") ) .execute()
Java
Task<Pipeline.Snapshot> result = db.pipeline() .collection("documents") .select( field("title").regexContains("Firestore (Enterprise|Standard)") .alias("isFirestoreRelated") ) .execute();
Python
from google.cloud.firestore_v1.pipeline_expressions import Field result = ( client.pipeline() .collection("documents") .select( Field.of("title") .regex_contains("Firestore (Enterprise|Standard)") .as_("isFirestoreRelated") ) .execute() )
REGEX_MATCH
Cú pháp:
regex_match(value: STRING, pattern: STRING) -> BOOLEAN
Nội dung mô tả:
Trả về TRUE nếu value hoàn toàn khớp với pattern. Nếu pattern không phải là một biểu thức chính quy hợp lệ, thì hàm này sẽ trả về error.
Biểu thức chính quy tuân theo cú pháp của thư viện re2.
Ví dụ:
| value | hoa văn | regex_match(value, pattern) |
|---|---|---|
| "Firestore" | "F.*store" | đúng |
| "Firestore" | "Lửa" | false |
| "Firestore" | "^F.*e$" | đúng |
Web
const result = await execute(db.pipeline() .collection("documents") .select( field("title").regexMatch("Firestore (Enterprise|Standard)") .as("isFirestoreExactly") ) );
Swift
let result = try await db.pipeline() .collection("documents") .select([ Field("title").regexMatch("Firestore (Enterprise|Standard)") .as("isFirestoreExactly") ]) .execute()
Kotlin
val result = db.pipeline() .collection("documents") .select( field("title").regexMatch("Firestore (Enterprise|Standard)") .alias("isFirestoreExactly") ) .execute()
Java
Task<Pipeline.Snapshot> result = db.pipeline() .collection("documents") .select( field("title").regexMatch("Firestore (Enterprise|Standard)") .alias("isFirestoreExactly") ) .execute();
Python
from google.cloud.firestore_v1.pipeline_expressions import Field result = ( client.pipeline() .collection("documents") .select( Field.of("title") .regex_match("Firestore (Enterprise|Standard)") .as_("isFirestoreExactly") ) .execute() )
STRING_CONCAT
Cú pháp:
string_concat(values: STRING...) -> STRING
Nội dung mô tả:
Nối hai hoặc nhiều giá trị STRING thành một kết quả duy nhất.
Ví dụ:
| đối số | string_concat(values...) |
|---|---|
() |
error |
("a") |
"a" |
("abc", "def") |
"abcdef" |
("a", "", "c") |
"ac" |
Web
const result = await execute(db.pipeline() .collection("books") .select( field("title").stringConcat(" by ", field("author")) .as("fullyQualifiedTitle") ) );
Swift
let result = try await db.pipeline() .collection("books") .select([ Field("title").concat([" by ", Field("author")]) .as("fullyQualifiedTitle") ]) .execute()
Kotlin
val result = db.pipeline() .collection("books") .select( field("title").concat(" by ", field("author")) .alias("fullyQualifiedTitle") ) .execute()
Java
Task<Pipeline.Snapshot> result = db.pipeline() .collection("books") .select( field("title").concat(" by ", field("author")) .alias("fullyQualifiedTitle") ) .execute();
Python
from google.cloud.firestore_v1.pipeline_expressions import Field result = ( client.pipeline() .collection("books") .select( Field.of("title") .concat(" by ", Field.of("author")) .as_("fullyQualifiedTitle") ) .execute() )
STRING_CONTAINS
Cú pháp:
string_contains(value: STRING, substring: STRING) -> BOOLEAN
Nội dung mô tả:
Kiểm tra xem value có chứa chuỗi ký tự substring hay không.
Ví dụ:
| value | chuỗi con | string_contains(value, substring) |
|---|---|---|
| "abc" | "b" | đúng |
| "abc" | "d" | false |
| "abc" | "" | đúng |
| "a.c" | "." | đúng |
| "☃☃☃" | "☃" | đúng |
Web
const result = await execute(db.pipeline() .collection("articles") .select( field("body").stringContains("Firestore") .as("isFirestoreRelated") ) );
Swift
let result = try await db.pipeline() .collection("articles") .select([ Field("body").stringContains("Firestore") .as("isFirestoreRelated") ]) .execute()
Kotlin
val result = db.pipeline() .collection("articles") .select( field("body").stringContains("Firestore") .alias("isFirestoreRelated") ) .execute()
Java
Task<Pipeline.Snapshot> result = db.pipeline() .collection("articles") .select( field("body").stringContains("Firestore") .alias("isFirestoreRelated") ) .execute();
Python
from google.cloud.firestore_v1.pipeline_expressions import Field result = ( client.pipeline() .collection("articles") .select(Field.of("body").string_contains("Firestore").as_("isFirestoreRelated")) .execute() )
Hàm TO_UPPER
Cú pháp:
to_upper[T <: STRING | BYTES](value: T) -> T
Nội dung mô tả:
Chuyển đổi giá trị STRING hoặc BYTES thành chữ hoa.
Nếu một byte hoặc ký tự không tương ứng với một ký tự chữ cái viết thường UTF-8, thì byte hoặc ký tự đó sẽ được truyền qua mà không thay đổi.
Ví dụ:
| value | to_upper(value) |
|---|---|
| "abc" | "ABC" |
| "AbC" | "ABC" |
| b"abc" | b"ABC" |
| b"a1c" | b"A1C" |
Web
const result = await execute(db.pipeline() .collection("authors") .select( field("name").toUpper() .as("uppercaseName") ) );
Swift
let result = try await db.pipeline() .collection("authors") .select([ Field("name").toUpper() .as("uppercaseName") ]) .execute()
Kotlin
val result = db.pipeline() .collection("authors") .select( field("name").toUpper() .alias("uppercaseName") ) .execute()
Java
Task<Pipeline.Snapshot> result = db.pipeline() .collection("authors") .select( field("name").toUpper() .alias("uppercaseName") ) .execute();
Python
from google.cloud.firestore_v1.pipeline_expressions import Field result = ( client.pipeline() .collection("authors") .select(Field.of("name").to_upper().as_("uppercaseName")) .execute() )
Hàm TO_LOWER
Cú pháp:
to_lower[T <: STRING | BYTES](value: T) -> T
Nội dung mô tả:
Chuyển đổi giá trị STRING hoặc BYTES thành chữ thường.
Nếu một byte hoặc ký tự không tương ứng với ký tự chữ cái viết hoa UTF-8, thì byte hoặc ký tự đó sẽ được truyền qua mà không thay đổi.
Ví dụ:
| value | to_lower(value) |
|---|---|
| "ABC" | "abc" |
| "AbC" | "abc" |
| "A1C" | "a1c" |
| b"ABC" | b"abc" |
Web
const result = await execute(db.pipeline() .collection("authors") .select( field("genre").toLower().equal("fantasy") .as("isFantasy") ) );
Swift
let result = try await db.pipeline() .collection("authors") .select([ Field("genre").toLower().equal("fantasy") .as("isFantasy") ]) .execute()
Kotlin
val result = db.pipeline() .collection("authors") .select( field("genre").toLower().equal("fantasy") .alias("isFantasy") ) .execute()
Java
Task<Pipeline.Snapshot> result = db.pipeline() .collection("authors") .select( field("genre").toLower().equal("fantasy") .alias("isFantasy") ) .execute();
Python
from google.cloud.firestore_v1.pipeline_expressions import Field result = ( client.pipeline() .collection("authors") .select(Field.of("genre").to_lower().equal("fantasy").as_("isFantasy")) .execute() )
SUBSTRING
Cú pháp:
substring[T <: STRING | BYTES](input: T, position: INT64) -> T
substring[T <: STRING | BYTES](input: T, position: INT64, length: INT64) -> T
Nội dung mô tả:
Trả về một chuỗi con của input, bắt đầu từ position (chỉ mục dựa trên 0) và bao gồm tối đa length mục. Nếu không có length, hãy trả về chuỗi con từ position đến cuối input.
Nếu
inputlà giá trịSTRING, thìpositionvàlengthđược đo bằng điểm mã unicode. Nếu đó là giá trịBYTES, thì các giá trị này được đo bằng byte.Nếu
positionlớn hơn độ dài củainput, thì hàm sẽ trả về một chuỗi con trống. Nếupositioncộng vớilengthlớn hơn độ dài củainput, thì chuỗi con sẽ bị cắt bớt đến cuốiinput.Nếu
positionlà số âm, vị trí sẽ được lấy từ cuối dữ liệu đầu vào. Nếu giá trị âmpositionlớn hơn kích thước của dữ liệu đầu vào, thì vị trí sẽ được đặt thành 0.lengthkhông được là số âm.
Ví dụ:
Khi bạn không cung cấp length:
| nhập liệu | position | substring(input, position) |
|---|---|---|
| "abc" | 0 | "abc" |
| "abc" | 1 | "bc" |
| "abc" | 3 | "" |
| "abc" | -1 | "c" |
| b"abc" | 1 | b"bc" |
Khi bạn cung cấp length:
| nhập liệu | position | chiều dài | substring(input, position, length) |
|---|---|---|---|
| "abc" | 0 | 1 | "a" |
| "abc" | 1 | 2 | "bc" |
| "abc" | -1 | 1 | "c" |
| b"abc" | 0 | 1 | b"a" |
Web
const result = await execute(db.pipeline() .collection("books") .where(field("title").startsWith("The ")) .select( field("title").substring(4) .as("titleWithoutLeadingThe") ) );
Swift
let result = try await db.pipeline() .collection("books") .where(Field("title").startsWith("The ")) .select([ Field("title").substring(position: 4) .as("titleWithoutLeadingThe") ]) .execute()
Kotlin
val result = db.pipeline() .collection("books") .where(field("title").startsWith("The ")) .select( field("title") .substring(constant(4), field("title").charLength().subtract(4)) .alias("titleWithoutLeadingThe") ) .execute()
Java
Task<Pipeline.Snapshot> result = db.pipeline() .collection("books") .where(field("title").startsWith("The ")) .select( field("title").substring( constant(4), field("title").charLength().subtract(4)) .alias("titleWithoutLeadingThe") ) .execute();
Python
from google.cloud.firestore_v1.pipeline_expressions import Field result = ( client.pipeline() .collection("books") .where(Field.of("title").starts_with("The ")) .select(Field.of("title").substring(4).as_("titleWithoutLeadingThe")) .execute() )
STRING_REVERSE
Cú pháp:
string_reverse[T <: STRING | BYTES](input: T) -> T
Nội dung mô tả:
Trả về dữ liệu đầu vào đã cung cấp theo thứ tự đảo ngược.
Các ký tự được phân định bằng điểm mã Unicode khi đầu vào là STRING và bằng byte khi đầu vào là giá trị BYTES.
Ví dụ:
| nhập liệu | string_reverse(input) |
|---|---|
| "abc" | "cba" |
| "a🌹b" | "b🌹a" |
| "xin chào" | "olleh" |
| b"abc" | b"cba" |
Web
const result = await execute(db.pipeline() .collection("books") .select( field("name").reverse().as("reversedName") ) );
Swift
let result = try await db.pipeline() .collection("books") .select([ Field("name").reverse().as("reversedName") ]) .execute()
Kotlin
val result = db.pipeline() .collection("books") .select( field("name").reverse().alias("reversedName") ) .execute()
Java
Task<Pipeline.Snapshot> result = db.pipeline() .collection("books") .select( field("name").reverse().alias("reversedName") ) .execute();
Python
from google.cloud.firestore_v1.pipeline_expressions import Field result = ( client.pipeline() .collection("books") .select(Field.of("name").string_reverse().as_("reversedName")) .execute() )
TRIM
Cú pháp:
trim[T <: STRING | BYTES](input: T, values_to_trim: T) -> T
trim[T <: STRING | BYTES](input: T) -> T
Nội dung mô tả:
Cắt một nhóm BYTES hoặc CHARS đã chỉ định ở đầu và cuối input được cung cấp.
- Nếu không có
values_to_trimnào được cung cấp, hãy cắt bỏ các ký tự khoảng trắng.
Ví dụ:
Khi bạn không cung cấp values_to_trim:
| nhập liệu | trim(input) |
|---|---|
| " foo " | "foo" |
| b" foo " | b"foo" |
| "foo" | "foo" |
| "" | "" |
| " " | "" |
| "\t foo \n" | "foo" |
| b"\t foo \n" | b"foo" |
| "\r\f\v foo \r\f\v" | "foo" |
| b"\r\f\v foo \r\f\v" | b"foo" |
Khi bạn cung cấp values_to_trim:
| nhập liệu | values_to_trim | trim(input, values_to_trim) |
|---|---|---|
| "abcbfooaacb" | "abc" | "foo" |
| "abcdaabadbac" | "abc" | "daabad" |
| b"C1C2C3" | b"C1" | b"C2C3" |
| b"C1C2" | "foo" | error |
| "foo" | b"C1" | error |
Web
const result = await execute(db.pipeline() .collection("books") .select( field("name").trim().as("whitespaceTrimmedName") ) );
Swift
let result = try await db.pipeline() .collection("books") .select([ Field("name").trim(" \n\t").as("whitespaceTrimmedName") ]) .execute()
Kotlin
val result = db.pipeline() .collection("books") .select( field("name").trim().alias("whitespaceTrimmedName") ) .execute()
Java
Task<Pipeline.Snapshot> result = db.pipeline() .collection("books") .select( field("name").trim().alias("whitespaceTrimmedName") ) .execute();
Python
from google.cloud.firestore_v1.pipeline_expressions import Field result = ( client.pipeline() .collection("books") .select(Field.of("name").trim().as_("whitespaceTrimmedName")) .execute() )
SPLIT
Cú pháp:
split(input: STRING) -> ARRAY<STRING>
split[T <: STRING | BYTES](input: T, delimiter: T) -> ARRAY<T>
Nội dung mô tả:
Chia giá trị STRING hoặc BYTES bằng dấu phân cách.
Đối với
STRING, dấu phân cách mặc định là dấu phẩy,. Dấu phân cách được coi là một chuỗi duy nhất.Đối với
BYTES, bạn phải chỉ định một dấu phân cách.Việc phân tách bằng dấu phân cách trống sẽ tạo ra một mảng điểm mã Unicode cho các giá trị
STRINGvà một mảngBYTEScho các giá trịBYTES.Việc phân chia một
STRINGtrống sẽ trả về mộtARRAYcó mộtSTRINGtrống.
Ví dụ:
Khi bạn không cung cấp delimiter:
| nhập liệu | split(input) |
|---|---|
| "foo,bar,foo" | ["foo", "bar", "foo"] |
| "foo" | ["foo"] |
| ",foo," | ["", "foo", ""] |
| "" | [""] |
| b"C120C2C4" | error |
Khi bạn cung cấp delimiter:
| nhập liệu | dấu phân cách | split(input, delimiter) |
|---|---|---|
| "foo bar foo" | " " | ["foo", "bar", "foo"] |
| "foo bar foo" | "z" | ["foo bar foo"] |
| "abc" | "" | ["a", "b", "c"] |
| b"C1,C2,C4" | b"," | [b"C1", b"C2", b"C4"] |
| b"ABC" | b"" | [b"A", b"B", b"C"] |
| "foo" | b"C1" | error |