参照関数

参照関数

REFERENCE 型は、データベース内の他のドキュメント(または他のデータベース)への「ポインタ」として機能します。次の関数を使用すると、クエリの実行中にこの型を操作できます。

名前 説明
COLLECTION_ID 指定された参照内のリーフ コレクションの ID を返します。
DOCUMENT_ID 指定された参照内のドキュメントの ID を返します。
PARENT 親参照を返します。
REFERENCE_SLICE 指定された参照からセグメントのサブセットを返します。

COLLECTION_ID

構文:

collection_id(ref: REFERENCE) -> STRING

説明:

指定された REFERENCE のリーフ コレクション ID を返します。

例:

ref collection_id(ref)
users/user1 "users"
users/user1/posts/post1 "posts"

DOCUMENT_ID

構文:

document_id(ref: REFERENCE) -> ANY

説明:

指定された REFERENCE のドキュメント ID を返します。

例:

ref document_id(ref)
users/user1 "user1"
users/user1/posts/post1 "post1"

PARENT

構文:

parent(ref: REFERENCE) -> REFERENCE

説明:

指定された参照の親 REFERENCE を返します。参照がすでにルート参照である場合は、NULL を返します。

例:

ref parent(ref)
/ NULL
users/user1 /
users/user1/posts/post1 users/user1

REFERENCE_SLICE

構文:

reference_slice(ref: REFERENCE, offset: INT, length: INT) -> REFERENCE

説明:

REFERENCE(collection_id, document_id) タプルのリストであり、array_slice(...) と同様に、そのリストを表示できます。

指定された ref のセグメントのサブセットである新しい REFERENCE を返します。

  • offset: スライスの開始インデックス(0 ベース)。負の値の場合、参照の末尾からのオフセットになります。
  • length: スライスに含めるセグメントの数。

例:

ref offset length reference_slice(ref, offset, length)
a/1/b/2/c/3 1L 2L b/2/c/3
a/1/b/2/c/3 0L 2L a/1/b/2
a/1/b/2/c/3 -2L 2L c/3