Stringfunktionen
| Name | Beschreibung |
BYTE_LENGTH
|
Gibt die Anzahl der BYTES in einem STRING- oder BYTES-Wert zurück
|
CHAR_LENGTH
|
Gibt die Anzahl der Unicode-Zeichen in einem STRING-Wert zurück
|
STARTS_WITH
|
Gibt TRUE zurück, wenn ein STRING mit einem bestimmten Präfix beginnt
|
ENDS_WITH
|
Gibt TRUE zurück, wenn ein STRING mit einem bestimmten Postfix endet
|
LIKE
|
Gibt TRUE zurück, wenn ein STRING mit einem Muster übereinstimmt.
|
REGEX_CONTAINS
|
Gibt TRUE zurück, wenn ein Wert teilweise oder vollständig mit einem regulären Ausdruck übereinstimmt
|
REGEX_FIND
|
Gibt den ersten Teilstring zurück, der mit einem regulären Ausdruck übereinstimmt, oder NULL, wenn keine Übereinstimmung gefunden wird.
|
REGEX_FIND_ALL
|
Gibt ein Array aller Teilstrings zurück, die mit einem regulären Ausdruck übereinstimmen, oder ein leeres Array, wenn es keine Übereinstimmungen gibt. |
REGEX_MATCH
|
Gibt TRUE zurück, wenn ein Teil eines Werts mit einem regulären Ausdruck übereinstimmt.
|
STRING_CONCAT
|
Verkettet mehrere STRING zu einem STRING
|
STRING_CONTAINS
|
Gibt TRUE zurück, wenn ein Wert einen STRING-Wert enthält.
|
STRING_INDEX_OF
|
Gibt den nullbasierten Index des ersten Vorkommens eines STRING- oder BYTES-Werts zurück.
|
TO_UPPER
|
Wandelt einen STRING- oder BYTES-Wert in Großbuchstaben um.
|
TO_LOWER
|
Wandelt einen STRING- oder BYTES-Wert in Kleinbuchstaben um.
|
SUBSTRING
|
Ruft einen Teilstring eines STRING- oder BYTES-Werts ab.
|
STRING_REVERSE
|
Kehrt einen STRING- oder BYTES-Wert um.
|
STRING_REPEAT
|
Wiederholt einen STRING- oder BYTES-Wert so oft wie angegeben.
|
STRING_REPLACE_ALL
|
Ersetzt alle Vorkommen eines STRING- oder BYTES-Werts.
|
STRING_REPLACE_ONE
|
Ersetzt das erste Vorkommen eines STRING- oder BYTES-Werts.
|
TRIM
|
Entfernt vor- und nachgestellte Zeichen aus einem STRING- oder BYTES-Wert.
|
LTRIM
|
Entfernt vorangestellte Zeichen aus einem STRING- oder BYTES-Wert.
|
RTRIM
|
Entfernt nachgestellte Zeichen aus einem STRING- oder BYTES-Wert.
|
SPLIT
|
Teilt einen STRING- oder BYTES-Wert in ein Array auf.
|
BYTE_LENGTH
Syntax:
byte_length[T <: STRING | BYTES](value: T) -> INT64
Beschreibung:
Gibt die Anzahl der BYTES in einem STRING- oder BYTES-Wert zurück.
Beispiele:
| Wert | byte_length(value) |
|---|---|
| "abc" | 3 |
| "xyzabc" | 6 |
| b"abc" | 3 |
Node.js
const result = await db.pipeline() .collection("books") .select( field("title").byteLength().as("titleByteLength") ) .execute();
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() )
Java
Pipeline.Snapshot result = firestore .pipeline() .collection("books") .select(byteLength(field("title")).as("titleByteLength")) .execute() .get();
Go
snapshot := client.Pipeline(). Collection("books"). Select(firestore.Fields( firestore.ByteLength(firestore.FieldOf("title")).As("titleByteLength"), )). Execute(ctx)
CHAR_LENGTH
Syntax:
char_length(value: STRING) -> INT64
Beschreibung:
Gibt die Anzahl der Unicode-Codepunkte im STRING-Wert zurück.
Beispiele:
| Wert | char_length(value) |
|---|---|
| "abc" | 3 |
| "hello" | 5 |
| "world" | 5 |
Node.js
const result = await db.pipeline() .collection("books") .select( field("title").charLength().as("titleCharLength") ) .execute();
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() )
Java
Pipeline.Snapshot result = firestore .pipeline() .collection("books") .select(charLength(field("title")).as("titleCharLength")) .execute() .get();
Go
snapshot := client.Pipeline(). Collection("books"). Select(firestore.Fields( firestore.CharLength(firestore.FieldOf("title")).As("titleCharLength"), )). Execute(ctx)
STARTS_WITH
Syntax:
starts_with(value: STRING, prefix: STRING) -> BOOLEAN
Beschreibung:
Gibt TRUE zurück, wenn value mit prefix beginnt.
Beispiele:
| Wert | Präfix | starts_with(value, prefix) |
|---|---|---|
| "abc" | „a“ | wahr |
| "abc" | "b" | falsch |
| "abc" | "" | wahr |
Node.js
const result = await db.pipeline() .collection("books") .select( field("title").startsWith("The") .as("needsSpecialAlphabeticalSort") ) .execute();
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() )
Java
Pipeline.Snapshot result = firestore .pipeline() .collection("books") .select(startsWith(field("title"), "The").as("needsSpecialAlphabeticalSort")) .execute() .get();
Go
snapshot := client.Pipeline(). Collection("books"). Select(firestore.Fields( firestore.StartsWith(firestore.FieldOf("title"), "The").As("needsSpecialAlphabeticalSort"), )). Execute(ctx)
ENDS_WITH
Syntax:
ends_with(value: STRING, postfix: STRING) -> BOOLEAN
Beschreibung:
Gibt TRUE zurück, wenn value mit postfix endet.
Beispiele:
| Wert | postfix | ends_with(value, postfix) |
|---|---|---|
| "abc" | "c" | wahr |
| "abc" | "b" | falsch |
| "abc" | "" | wahr |
Node.js
const result = await db.pipeline() .collection("inventory/devices/laptops") .select( field("name").endsWith("16 inch") .as("16InLaptops") ) .execute();
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() )
Java
Pipeline.Snapshot result = firestore .pipeline() .collection("inventory/devices/laptops") .select(endsWith(field("name"), "16 inch").as("16InLaptops")) .execute() .get();
Go
snapshot := client.Pipeline(). Collection("inventory/devices/laptops"). Select(firestore.Fields( firestore.EndsWith(firestore.FieldOf("name"), "16 inch").As("`Laptops16in`"), )). Execute(ctx)
LIKE
Syntax:
like(value: STRING, pattern: STRING) -> BOOLEAN
Beschreibung:
Gibt TRUE zurück, wenn value mit pattern übereinstimmt.
Beispiele:
| Wert | Muster | like(value, pattern) |
|---|---|---|
| "Firestore" | "Fire%" | wahr |
| "Firestore" | „%store“ | wahr |
| „Datastore“ | "Data_tore" | wahr |
| "100%" | "100\%" | wahr |
Node.js
const result = await db.pipeline() .collection("books") .select( field("genre").like("%Fiction") .as("anyFiction") ) .execute();
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() )
Java
Pipeline.Snapshot result = firestore .pipeline() .collection("books") .select(like(field("genre"), "%Fiction").as("anyFiction")) .execute() .get();
Go
snapshot := client.Pipeline(). Collection("books"). Select(firestore.Fields( firestore.Like(firestore.FieldOf("genre"), "%Fiction").As("anyFiction"), )). Execute(ctx)
REGEX_CONTAINS
Syntax:
regex_contains(value: STRING, regexp: STRING | REGEX) -> BOOLEAN
Beschreibung:
Gibt TRUE zurück, wenn ein Teil von value mit regexp übereinstimmt. Wenn regexp kein gültiger regulärer Ausdruck ist, gibt diese Funktion einen error zurück.
Das Argument regexp kann auch ein REGEX-Wert sein, der mit regex("pattern", "options") erstellt wurde. In diesem Format können Sie Optionen für reguläre Ausdrücke zusammen mit dem Muster angeben. Die folgenden Optionen werden unterstützt:
i: Übereinstimmung ohne Berücksichtigung der Groß-/Kleinschreibung.m: Mehrzeiliger Modus (^und$entsprechen dem Anfang oder Ende von Zeilen).s: Dotall-Modus (.entspricht Zeilenumbrüchen).
Wenn regexp ein STRING ist, werden außer den im Muster selbst eingebetteten Optionen (z.B. (?i)) keine Optionen angewendet.
Reguläre Ausdrücke folgen der Syntax der re2-Bibliothek.
Beispiele:
| Wert | RegExp | regex_contains(value, regexp) |
|---|---|---|
| "Firestore" | "Feuer" | wahr |
| "Firestore" | "store$" | wahr |
| "Firestore" | "data" | falsch |
| "Firestore" | regex("fire", "i") |
wahr |
| "Firestore" | regex("FIRE", "") |
falsch |
Node.js
const result = await db.pipeline() .collection("documents") .select( field("title").regexContains("Firestore (Enterprise|Standard)") .as("isFirestoreRelated") ) .execute();
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() )
Java
Pipeline.Snapshot result = firestore .pipeline() .collection("documents") .select( regexContains(field("title"), "Firestore (Enterprise|Standard)") .as("isFirestoreRelated")) .execute() .get();
Go
snapshot := client.Pipeline(). Collection("documents"). Select(firestore.Fields( firestore.RegexContains(firestore.FieldOf("title"), "Firestore (Enterprise|Standard)").As("isFirestoreRelated"), )). Execute(ctx)
REGEX_FIND
Syntax:
regex_find(value: STRING, regexp: STRING | REGEX) -> STRING
Beschreibung:
Gibt den ersten Teilstring in value zurück, der mit regexp übereinstimmt, oder NULL, wenn es keine Übereinstimmung gibt. Wenn regexp kein gültiger regulärer Ausdruck ist, gibt diese Funktion einen error zurück.
Das Argument regexp kann auch ein REGEX-Wert sein, der mit regex("pattern", "options") erstellt wurde. In diesem Format können Sie Optionen für reguläre Ausdrücke zusammen mit dem Muster angeben. Die folgenden Optionen werden unterstützt:
i: Übereinstimmung ohne Berücksichtigung der Groß-/Kleinschreibung.m: Mehrzeiliger Modus (^und$entsprechen dem Anfang oder Ende von Zeilen).s: Dotall-Modus (.entspricht Zeilenumbrüchen).
Wenn regexp ein STRING ist, werden außer den im Muster selbst eingebetteten Optionen (z.B. (?i)) keine Optionen angewendet.
Reguläre Ausdrücke folgen der Syntax der re2-Bibliothek.
Beispiele:
| Wert | RegExp | regex_find(value, regexp) |
|---|---|---|
| "Sometext MATCH" | "SomeText" | "Sometext" |
| "Sometext MATCH" | regex("match", "i") |
„MATCH“ |
| "Sometext MATCH" | regex("(match)", "i") |
„MATCH“ |
| „Sometext match“ | regex("MATCH", "") |
null |
REGEX_FIND_ALL
Syntax:
regex_find_all(value: STRING, regexp: STRING | REGEX) -> ARRAY<STRING>
Beschreibung:
Gibt ein Array aller Teilstrings in value zurück, die mit regexp übereinstimmen, oder ein leeres Array, wenn es keine Übereinstimmungen gibt. Wenn regexp kein gültiger regulärer Ausdruck ist, gibt diese Funktion einen error zurück.
Das Argument regexp kann auch ein REGEX-Wert sein, der mit regex("pattern", "options") erstellt wurde. In diesem Format können Sie Optionen für reguläre Ausdrücke zusammen mit dem Muster angeben. Die folgenden Optionen werden unterstützt:
i: Übereinstimmung ohne Berücksichtigung der Groß-/Kleinschreibung.m: Mehrzeiliger Modus (^und$entsprechen dem Anfang oder Ende von Zeilen).s: Dotall-Modus (.entspricht Zeilenumbrüchen).
Wenn regexp ein STRING ist, werden außer den im Muster selbst eingebetteten Optionen (z.B. (?i)) keine Optionen angewendet.
Reguläre Ausdrücke folgen der Syntax der re2-Bibliothek.
Beispiele:
| Wert | RegExp | regex_find_all(value, regexp) |
|---|---|---|
| "one two three two" | "eins" | ["one"] |
| "one TWO three Two" | regex("two", "i") |
["TWO", "Two"] |
| "one two three two" | regex("TWO", "") |
[] |
REGEX_MATCH
Syntax:
regex_match(value: STRING, regexp: STRING | REGEX) -> BOOLEAN
Beschreibung:
Gibt TRUE zurück, wenn value vollständig mit regexp übereinstimmt. Wenn regexp kein gültiger regulärer Ausdruck ist, gibt diese Funktion einen error zurück.
Das Argument regexp kann auch ein REGEX-Wert sein, der mit regex("pattern", "options") erstellt wurde. In diesem Format können Sie Optionen für reguläre Ausdrücke zusammen mit dem Muster angeben. Die folgenden Optionen werden unterstützt:
i: Übereinstimmung ohne Berücksichtigung der Groß-/Kleinschreibung.m: Mehrzeiliger Modus (^und$entsprechen dem Anfang oder Ende von Zeilen).s: Dotall-Modus (.entspricht Zeilenumbrüchen).
Wenn regexp ein STRING ist, werden außer den im Muster selbst eingebetteten Optionen (z.B. (?i)) keine Optionen angewendet.
Reguläre Ausdrücke folgen der Syntax der re2-Bibliothek.
Beispiele:
| Wert | RegExp | regex_match(value, regexp) |
|---|---|---|
| "Firestore" | "F.*store" | wahr |
| "Firestore" | "Feuer" | falsch |
| "Firestore" | "^F.*e$" | wahr |
| „FiReStOrE“ | regex("firestore", "i") |
wahr |
| "Firestore" | regex("firestore", "") |
falsch |
Node.js
const result = await db.pipeline() .collection("documents") .select( field("title").regexMatch("Firestore (Enterprise|Standard)") .as("isFirestoreExactly") ) .execute();
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() )
Java
Pipeline.Snapshot result = firestore .pipeline() .collection("documents") .select( regexMatch(field("title"), "Firestore (Enterprise|Standard)") .as("isFirestoreExactly")) .execute() .get();
Go
snapshot := client.Pipeline(). Collection("documents"). Select(firestore.Fields( firestore.RegexMatch(firestore.FieldOf("title"), "Firestore (Enterprise|Standard)").As("isFirestoreExactly"), )). Execute(ctx)
STRING_CONCAT
Syntax:
string_concat(values: STRING...) -> STRING
Beschreibung:
Verkettet zwei oder mehr STRING-Werte zu einem einzigen Ergebnis.
Beispiele:
| Argumente | string_concat(values...) |
|---|---|
() |
Fehler |
("a") |
„a“ |
("abc", "def") |
"abcdef" |
("a", "", "c") |
"ac" |
Node.js
const result = await db.pipeline() .collection("books") .select( field("title").stringConcat(" by ", field("author")) .as("fullyQualifiedTitle") ) .execute();
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() )
Java
Pipeline.Snapshot result = firestore .pipeline() .collection("books") .select(stringConcat(field("title"), " by ", field("author")).as("fullyQualifiedTitle")) .execute() .get();
Go
snapshot := client.Pipeline(). Collection("books"). Select(firestore.Fields( firestore.StringConcat(firestore.FieldOf("title"), " by ", firestore.FieldOf("author")).As("fullyQualifiedTitle"), )). Execute(ctx)
STRING_CONTAINS
Syntax:
string_contains(value: STRING, substring: STRING) -> BOOLEAN
Beschreibung:
Prüft, ob value den Stringliteral substring enthält.
Beispiele:
| Wert | Teilstring | string_contains(value, substring) |
|---|---|---|
| "abc" | "b" | wahr |
| "abc" | "d" | falsch |
| "abc" | "" | wahr |
| "a.c" | "." | wahr |
| "☃☃☃" | "☃" | wahr |
Node.js
const result = await db.pipeline() .collection("articles") .select( field("body").stringContains("Firestore") .as("isFirestoreRelated") ) .execute();
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() )
Java
Pipeline.Snapshot result = firestore .pipeline() .collection("articles") .select(stringContains(field("body"), "Firestore").as("isFirestoreRelated")) .execute() .get();
Go
snapshot := client.Pipeline(). Collection("articles"). Select(firestore.Fields( firestore.StringContains(firestore.FieldOf("body"), "Firestore").As("isFirestoreRelated"), )). Execute(ctx)
STRING_INDEX_OF
Syntax:
string_index_of[T <: STRING | BYTES](value: T, search: T) -> INT64
Beschreibung:
Gibt den 0-basierten Index des ersten Vorkommens von search in value zurück.
- Gibt
-1zurück, wennsearchnicht gefunden wird. - Wenn
valueeinSTRING-Wert ist, wird das Ergebnis in Unicode-Codepunkten gemessen. Wenn es sich um einenBYTES-Wert handelt, wird er in Byte gemessen. - Wenn
searchein leererSTRING- oderBYTES-Wert ist, ist das Ergebnis0.
Beispiele:
| Wert | search | string_index_of(value, search) |
|---|---|---|
| "hello world" | "o" | 4 |
| "hello world" | "l" | 2 |
| "hello world" | "z" | -1 |
| "banana" | "ana" | 1 |
| "abc" | "" | 0 |
| b"abc" | b"b" | 1 |
| "é" | "é" | 0 |
| b"é" | b"é" | 0 |
TO_UPPER
Syntax:
to_upper[T <: STRING | BYTES](value: T) -> T
Beschreibung:
Wandelt einen STRING- oder BYTES-Wert in Großbuchstaben um.
Wenn ein Byte oder Zeichen keinem UTF-8-Kleinbuchstaben entspricht, wird es unverändert weitergegeben.
Beispiele:
| Wert | to_upper(value) |
|---|---|
| "abc" | "ABC" |
| "AbC" | "ABC" |
| b"abc" | b"ABC" |
| b"a1c" | b"A1C" |
Node.js
const result = await db.pipeline() .collection("authors") .select( field("name").toUpper() .as("uppercaseName") ) .execute();
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() )
Java
Pipeline.Snapshot result = firestore .pipeline() .collection("authors") .select(toUpper(field("name")).as("uppercaseName")) .execute() .get();
Go
snapshot := client.Pipeline(). Collection("authors"). Select(firestore.Fields( firestore.ToUpper(firestore.FieldOf("name")).As("uppercaseName"), )). Execute(ctx)
TO_LOWER
Syntax:
to_lower[T <: STRING | BYTES](value: T) -> T
Beschreibung:
Wandelt einen STRING- oder BYTES-Wert in Kleinbuchstaben um.
Wenn ein Byte oder Zeichen keinem UTF-8-Großbuchstaben entspricht, wird es unverändert weitergegeben.
Beispiele:
| Wert | to_lower(value) |
|---|---|
| "ABC" | "abc" |
| "AbC" | "abc" |
| „A1C“ | "a1c" |
| b"ABC" | b"abc" |
Node.js
const result = await db.pipeline() .collection("authors") .select( field("genre").toLower().equal("fantasy") .as("isFantasy") ) .execute();
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() )
Java
Pipeline.Snapshot result = firestore .pipeline() .collection("authors") .select(equal(toLower(field("genre")), "fantasy").as("isFantasy")) .execute() .get();
Go
snapshot := client.Pipeline(). Collection("authors"). Select(firestore.Fields( firestore.Equal(firestore.ToLower(firestore.FieldOf("genre")), "fantasy").As("isFantasy"), )). Execute(ctx)
SUBSTRING
Syntax:
substring[T <: STRING | BYTES](input: T, position: INT64) -> T
substring[T <: STRING | BYTES](input: T, position: INT64, length: INT64) -> T
Beschreibung:
Gibt einen Teilstring von input zurück, beginnend bei position (nullbasierter Index) und mit bis zu length Einträgen. Wenn kein length angegeben ist, wird der Teilstring von position bis zum Ende von input zurückgegeben.
Wenn
inputeinSTRING-Wert ist, werdenpositionundlengthin Unicode-Codepunkten gemessen. Wenn es sich um einenBYTES-Wert handelt, wird er in Byte gemessen.Wenn
positiongrößer als die Länge voninputist, wird ein leerer Teilstring zurückgegeben. Wennpositionpluslengthgrößer als die Länge voninputist, wird der Teilstring bis zum Ende voninputabgeschnitten.Wenn
positionnegativ ist, wird die Position vom Ende der Eingabe genommen. Wenn der negativepositiongrößer als die Größe der Eingabe ist, wird die Position auf null gesetzt.lengthdarf nicht negativ sein.
Beispiele:
Wenn length nicht angegeben ist:
| Eingabe | position | substring(input, position) |
|---|---|---|
| "abc" | 0 | "abc" |
| "abc" | 1 | "bc" |
| "abc" | 3 | "" |
| "abc" | -1 | "c" |
| b"abc" | 1 | b"bc" |
Wenn length angegeben wurde, geschieht Folgendes:
| Eingabe | position | Länge | substring(input, position, length) |
|---|---|---|---|
| "abc" | 0 | 1 | „a“ |
| "abc" | 1 | 2 | "bc" |
| "abc" | -1 | 1 | "c" |
| b"abc" | 0 | 1 | b"a" |
Node.js
const result = await db.pipeline() .collection("books") .where(field("title").startsWith("The ")) .select( field("title").substring(4) .as("titleWithoutLeadingThe") ) .execute();
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() )
Java
Pipeline.Snapshot result = firestore .pipeline() .collection("books") .where(startsWith(field("title"), "The ")) .select( substring(field("title"), constant(4), field("title").charLength()) .as("titleWithoutLeadingThe")) .execute() .get();
Go
snapshot := client.Pipeline(). Collection("books"). Where(firestore.StartsWith(firestore.FieldOf("title"), "The ")). Select(firestore.Fields( firestore.Substring(firestore.FieldOf("title"), firestore.ConstantOf(4), firestore.FieldOf("title").CharLength()).As("titleWithoutLeadingThe"), )). Execute(ctx)
STRING_REVERSE
Syntax:
string_reverse[T <: STRING | BYTES](input: T) -> T
Beschreibung:
Gibt die angegebene Eingabe in umgekehrter Reihenfolge zurück.
Zeichen werden durch Unicode-Codepunkte abgegrenzt, wenn die Eingabe ein STRING-Wert ist, und durch Byte, wenn die Eingabe ein BYTES-Wert ist.
Beispiele:
| Eingabe | string_reverse(input) |
|---|---|
| "abc" | "cba" |
| "a🌹b" | "b🌹a" |
| "hello" | "olleh" |
| b"abc" | b"cba" |
Node.js
const result = await db.pipeline() .collection("books") .select( field("name").reverse().as("reversedName") ) .execute();
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() )
Java
Pipeline.Snapshot result = firestore .pipeline() .collection("books") .select(reverse(field("name")).as("reversedName")) .execute() .get();
Go
snapshot := client.Pipeline(). Collection("books"). Select(firestore.Fields( firestore.Reverse(firestore.FieldOf("name")).As("reversedName"), )). Execute(ctx)
STRING_REPEAT
Syntax:
string_repeat[T <: STRING | BYTES](input: T, repetitions: INT64) -> T
Beschreibung:
Gibt input repetitions-mal wiederholt zurück.
repetitionsmuss eine nicht negative Ganzzahl sein.- Wenn
repetitionsden Wert0hat, wird ein leerer Wert desselben Typs wieinputzurückgegeben. - Wenn das Ergebnis die maximal zulässige Größe (1 MB) überschreitet, wird ein Fehler zurückgegeben.
Beispiele:
| Eingabe | Wiederholungen | string_repeat(input, repetitions) |
|---|---|---|
| "foo" | 3 | "foofoofoo" |
| "foo" | 0 | "" |
| "a " | 3 | "a a a " |
| b"ab" | 2 | b"abab" |
| „é🦆“ | 2 | „é🦆é🦆“ |
STRING_REPLACE_ALL
Syntax:
string_replace_all[T <: STRING | BYTES](input: T, find: T, replacement: T) -> T
Beschreibung:
Ersetzt alle nicht überlappenden Vorkommen von find in input durch replacement.
- Bei Übereinstimmungen wird zwischen Groß- und Kleinschreibung unterschieden.
- Wenn
findleer ist, werden keine Ersetzungen vorgenommen.
Beispiele:
| Eingabe | finden | Ersetzen | string_replace_all(input, find, replacement) |
|---|---|---|---|
| "foobarfoo" | "foo" | "baz" | "bazbarbaz" |
| "ababab" | "aba" | "c" | "cbab" |
| "foobar" | "o" | "" | "fbar" |
| "é🦆🌎🦆" | „🦆“ | „a“ | "éa🌎a" |
| b"abc" | b"b" | b"d" | b"adc" |
STRING_REPLACE_ONE
Syntax:
string_replace_one[T <: STRING | BYTES](input: T, find: T, replacement: T) -> T
Beschreibung:
Ersetzt das erste Vorkommen von find in input durch replacement.
- Bei Übereinstimmungen wird zwischen Groß- und Kleinschreibung unterschieden.
- Wenn
findleer ist, werden keine Ersetzungen vorgenommen.
Beispiele:
| Eingabe | finden | Ersetzen | string_replace_one(input, find, replacement) |
|---|---|---|---|
| "foobarfoo" | "foo" | "baz" | "bazbarfoo" |
| "é" | "é" | „a“ | „a“ |
| b"foobar" | b"o" | b"z" | b"fzoobar" |
TRIM
Syntax:
trim[T <: STRING | BYTES](input: T, values_to_trim: T) -> T
trim[T <: STRING | BYTES](input: T) -> T
Beschreibung:
Entfernt einen angegebenen Satz von BYTES oder CHARS am Anfang und Ende des angegebenen input.
- Wenn keine
values_to_trimangegeben sind, werden Leerzeichen entfernt.
Beispiele:
Wenn values_to_trim nicht angegeben ist:
| Eingabe | 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" |
Wenn values_to_trim angegeben wurde, geschieht Folgendes:
| Eingabe | values_to_trim | trim(input, values_to_trim) |
|---|---|---|
| "abcbfooaacb" | "abc" | "foo" |
| "abcdaabadbac" | "abc" | "daabad" |
| b"C1C2C3" | b"C1" | b"C2C3" |
| b"C1C2" | "foo" | Fehler |
| "foo" | b"C1" | Fehler |
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() )
Java
Pipeline.Snapshot result = firestore .pipeline() .collection("books") .select(trim(field("name")).as("whitespaceTrimmedName")) .execute() .get();
Go
snapshot := client.Pipeline(). Collection("books"). Select(firestore.Fields( firestore.Trim(firestore.FieldOf("name")).As("whitespaceTrimmedName"), )). Execute(ctx)
LTRIM
Syntax:
ltrim[T <: STRING | BYTES](value: T, to_trim: T) -> T
ltrim[T <: STRING | BYTES](value: T) -> T
Beschreibung:
Entfernt einen angegebenen Satz von BYTES oder CHARS vom Anfang des angegebenen value.
- Wenn
to_trimnicht angegeben ist, werden führende Leerzeichen entfernt.
Beispiele:
Wenn to_trim nicht angegeben ist:
| Wert | ltrim(value) |
|---|---|
| " foo " | "foo " |
| "foo" | "foo" |
Wenn to_trim angegeben wurde, geschieht Folgendes:
| Wert | to_trim | ltrim(value, to_trim) |
|---|---|---|
| "aaabc" | „a“ | "bc" |
| "abacaba" | "ba" | "caba" |
| "é" | "é" | "" |
RTRIM
Syntax:
rtrim[T <: STRING | BYTES](value: T, to_trim: T) -> T
rtrim[T <: STRING | BYTES](value: T) -> T
Beschreibung:
Entfernt einen angegebenen Satz von BYTES oder CHARS vom Ende des angegebenen value.
- Wenn
to_trimnicht angegeben ist, werden nachfolgende Leerzeichen entfernt.
Beispiele:
Wenn to_trim nicht angegeben ist:
| Wert | rtrim(value) |
|---|---|
| " foo " | " foo" |
| "foo" | "foo" |
Wenn to_trim angegeben wurde, geschieht Folgendes:
| Wert | to_trim | rtrim(value, to_trim) |
|---|---|---|
| "abccc" | "c" | "ab" |
| "abacaba" | "ba" | "abac" |
| "é" | "é" | "" |
SPLIT
Syntax:
split(input: STRING) -> ARRAY<STRING>
split[T <: STRING | BYTES](input: T, delimiter: T) -> ARRAY<T>
Beschreibung:
Teilt einen STRING- oder BYTES-Wert mithilfe eines Trennzeichens auf.
Für
STRINGist das Standardtrennzeichen das Komma,. Das Trennzeichen wird als einzelner String behandelt.Für
BYTESmüssen Sie ein Trennzeichen angeben.Wenn Sie einen leeren Trenner verwenden, wird ein Array von Unicode-Codepunkten für
STRING-Werte und ein Array vonBYTESfürBYTES-Werte erzeugt.Das Aufteilen eines leeren
STRINGgibt einARRAYaus einem einzelnen leerenSTRINGzurück.
Beispiele:
Wenn delimiter nicht angegeben ist:
| Eingabe | split(input) |
|---|---|
| "foo,bar,foo" | ["foo", "bar", "foo"] |
| "foo" | ["foo"] |
| ",foo," | ["", "foo", ""] |
| "" | [""] |
| b"C120C2C4" | Fehler |
Wenn delimiter angegeben wurde, geschieht Folgendes:
| Eingabe | delimiter | 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" | Fehler |