全部产品
Search
文档中心

Tair (Redis® OSS-Compatible):Dokumen

更新时间:Nov 10, 2025

TairDoc merupakan struktur data dokumen yang mirip dengan RedisJSON, memungkinkan Anda melakukan operasi Membuat, Membaca, Memperbarui, dan Menghapus (CRUD).

Ikhtisar

Fitur Utama

  • Sepenuhnya mendukung standar JSON.

  • Sebagian kompatibel dengan standar JSONPath RFC draft-4.

    Catatan

    Hanya perintah JSON.GET yang mendukung versi draf ini.

  • Sepenuhnya mendukung sintaks JSONPointer.

  • Penyimpanan data dalam struktur pohon biner untuk menyederhanakan pengambilan elemen anak.

  • Konversi format JSON ke XML atau YAML.

Catatan rilis

  1. TairDoc diluncurkan bersama dengan instans optimasi memori Tair. TairDoc mendukung sintaks JSONPointer secara lengkap dan sebagian sintaks JSONPath (hanya perintah JSON.GET yang mendukung sintaks JSONPath).

  2. Pada 17 Mei 2022, TairDoc V1.8.4 yang sepenuhnya mendukung sintaks JSONPath untuk perintah JSON.GET dirilis. Kami menyarankan Anda untuk memperbarui versi minor instans Anda ke 1.8.4 atau yang lebih baru.

    TairDoc V1.8.4 juga mendukung pemilih spesifik seperti pemilih wildcard titik, pemilih indeks, dan pemilih filter.

Prasyarat

Instans Tair berbasis DRAM telah dibuat.

Catatan

Versi minor terbaru menawarkan lebih banyak fitur dan stabilitas yang lebih baik. Kami merekomendasikan Anda untuk memperbarui instans ke versi minor terbaru. Untuk informasi lebih lanjut, lihat Perbarui versi minor sebuah instans. Jika instans Anda adalah kluster atau instans pemisahan baca/tulis, pastikan untuk memperbarui node proxy di dalam instans ke versi minor terbaru agar semua perintah dapat berjalan sesuai harapan.

Pertimbangan

Operasi ini dilakukan pada data TairDoc di dalam instans Tair.

Daftar perintah

Tabel 1. Perintah TairDoc

Perintah

Sintaks

Deskripsi

JSON.SET

JSON.SET kunci jalur json [NX | XX]

Membuat kunci TairDoc dan menyimpan elemen JSON di jalur kunci. Jika kunci dan jalur sudah ada, perintah ini memperbarui elemen di jalur kunci.

JSON.GET

JSON.GET kunci jalur [FORMAT XML | YAML] [ROOTNAME root] [ARRNAME arr]

Mengambil elemen JSON dari jalur kunci TairDoc.

JSON.DEL

JSON.DEL kunci jalur

Menghapus elemen JSON dari jalur di kunci TairDoc. Jika jalur tidak ditentukan, kunci akan dihapus. Jika kunci atau jalur tidak ada, perintah ini diabaikan.

JSON.TYPE

JSON.TYPE kunci jalur

Mengambil tipe elemen JSON di jalur kunci TairDoc. Tipe yang mungkin termasuk boolean, string, number, array, object, raw, reference, const, dan null.

JSON.MERGE

JSON.MERGE kunci jalur nilai

Menggabungkan nilai JSON ke jalur kunci yang ditentukan. Perintah ini memungkinkan Anda melakukan operasi seperti menambahkan nilai baru, memperbarui nilai yang ada, dan menghapus nilai di jalur yang ditentukan.

JSON.NUMINCRBY

JSON.NUMINCRBY kunci jalur nilai

Menambahkan nilai elemen JSON di jalur kunci TairDoc. Elemen dan nilai yang ingin Anda tambahkan ke elemen tersebut harus memiliki tipe data yang sama, yaitu integer atau double.

JSON.STRAPPEND

JSON.STRAPPEND kunci jalur json-string

Menambahkan nilai json-string ke elemen JSON di jalur kunci TairDoc. Nilai json-string dan elemen JSON harus bertipe string.

JSON.STRLEN

JSON.STRLEN kunci jalur

Mengambil panjang string elemen JSON dari jalur kunci TairDoc. Elemen JSON harus bertipe string.

JSON.ARRAPPEND

JSON.ARRAPPEND kunci jalur json [json ...]

Menambahkan satu atau lebih elemen JSON ke akhir array di jalur kunci TairDoc.

JSON.ARRPOP

JSON.ARRPOP kunci jalur [indeks]

Menghapus dan mengembalikan elemen yang cocok dengan indeks yang ditentukan dalam array jalur kunci TairDoc.

JSON.ARRINSERT

JSON.ARRINSERT kunci jalur [indeks] json [json ...]

Menyisipkan satu atau lebih elemen JSON ke dalam array di jalur sebelum indeks yang ditentukan di kunci TairDoc.

JSON.ARRLEN

JSON.ARRLEN kunci jalur

Mengambil panjang array di jalur kunci TairDoc.

JSON.ARRTRIM

JSON.ARRTRIM kunci jalur mulai berhenti

Memotong array di jalur kunci TairDoc. Perintah ini mempertahankan elemen-elemen dalam array yang berada di antara nilai mulai dan nilai berhenti.

DEL

DEL <kunci> [kunci ...]

Menghapus satu atau lebih kunci TairDoc. Ini adalah perintah asli Redis.

Catatan

Berikut adalah konvensi untuk sintaks perintah yang digunakan dalam topik ini:

  • KATA KUNCI HURUF BESAR: Menunjukkan kata kunci perintah.

  • Teks miring: Menunjukkan variabel.

  • [opsi]: Parameter di dalam tanda kurung siku bersifat opsional, sedangkan parameter tanpa tanda kurung siku wajib ditentukan.

  • A|B: Parameter yang dipisahkan oleh batang vertikal (|) bersifat saling eksklusif; hanya satu dari parameter tersebut yang dapat ditentukan.

  • ...: Parameter sebelum simbol ini dapat ditentukan secara berulang.

JSON.SET

Kategori

Deskripsi

Sintaksis

JSON.SET kunci jalur json [NX | XX]

Kompleksitas waktu

O(N)

Deskripsi perintah

Membuat kunci TairDoc dan menyimpan elemen JSON di jalur kunci. Jika kunci dan jalur sudah ada, perintah ini memperbarui elemen di jalur kunci.

Opsi

  • key: kunci TairDoc yang menentukan objek TairDoc tempat perintah dijalankan.

  • path: jalur dari kunci. Elemen root bisa berupa . atau $.

  • json: elemen JSON yang ingin Anda tambahkan atau perbarui.

  • NX: menulis elemen hanya jika jalur tidak ada.

  • XX: menulis elemen hanya jika jalur sudah ada.

Nilai pengembalian

  • Jika operasi berhasil, OK dikembalikan.

  • Jika parameter XX ditentukan tetapi jalur tidak ada, nil dikembalikan.

  • Jika parameter NX ditentukan dan jalur sudah ada, nil dikembalikan.

  • Jika pesan ERR could not find object to add, please check path dikembalikan, path yang ditentukan tidak valid.

  • Selain itu, pesan kesalahan dikembalikan.

Contoh

Perintah contoh:

JSON.SET doc $ '{ "store": { "book": [ { "category": "referensi", "author": "Nigel Rees", "title": "Sayings of the Century", "price": 8,95 }, { "category": "fiksi", "author": "Evelyn Waugh", "title": "Sword of Honour", "price": 12,99 }, { "category": "fiksi", "author": "Herman Melville", "title": "Moby Dick", "isbn": "0-553-21311-3", "price": 8,99 }, { "category": "fiksi", "author": "J. R. R. Tolkien", "title": "The Lord of the Rings", "isbn": "0-395-19395-8", "price": 22,99 } ], "bicycle": { "color": "merah", "price": 19,95 } } }'

Tanggapan contoh:

OK

JSON.GET

Kategori

Deskripsi

Sintaksis

JSON.GET key path [FORMAT XML | YAML] [ROOTNAME root] [ARRNAME arr]

Kompleksitas waktu

O(N)

Deskripsi perintah

Mengambil elemen JSON dari jalur kunci TairDoc.

Opsi

  • key: kunci TairDoc yang menentukan objek TairDoc tempat perintah dijalankan.

  • path: jalur dari kunci. Perintah ini mendukung sintaksis JSONPath dan JSON untuk kueri fleksibel. Untuk informasi lebih lanjut, lihat JSONPath dan JSONPointer.

  • FORMAT: format elemen JSON yang dikembalikan. Nilai valid: XML dan YAML.

  • ROOTNAME : tag elemen ROOT dalam sintaksis XML.

  • ARRNAME: tag elemen ARRAY dalam sintaksis XML.

Catatan

Parameter ROOTNAME dan ARRNAME hanya valid jika parameter FORMAT disetel ke XML.

Nilai pengembalian

  • Jika operasi berhasil, elemen JSON akan dikembalikan.

  • Jika tidak, pesan kesalahan akan dikembalikan.

Contoh

Jalankan perintah JSON.SET doc . '{"foo": "bar", "baz" : 42}' terlebih dahulu.

Perintah contoh:

JSON.GET doc . FORMAT XML ROOTNAME ROOT ARRNAME ARR

Tanggapan contoh:

"<?xml version=\"1.0\" encoding=\"UTF-8\"?><ROOT><foo>bar</foo><baz>42</baz></ROOT>"

JSON.DEL

Kategori

Deskripsi

Sintaksis

JSON.DEL key path

Kompleksitas waktu

O(N)

Deskripsi perintah

Menghapus elemen JSON dari path dalam kunci TairDoc. Jika path tidak ditentukan, kunci akan dihapus. Jika kunci atau path tidak ada, perintah ini diabaikan.

Opsi

  • key: kunci TairDoc yang menentukan objek TairDoc tempat perintah dijalankan.

  • path: path dari kunci.

Nilai kembali

  • Jika operasi berhasil, nilai 1 dikembalikan.

  • Jika operasi gagal, nilai 0 dikembalikan.

  • Jika tidak, pesan kesalahan dikembalikan.

Contoh

Jalankan perintah JSON.SET doc . '{"foo": "bar", "baz" : 42}' terlebih dahulu.

Perintah contoh:

JSON.DEL doc .foo

Tanggapan contoh:

(integer) 1

JSON.TYPE

Kategori

Deskripsi

Sintaksis

JSON.TYPE kunci jalur

Kompleksitas waktu

O(N)

Deskripsi perintah

Mengambil tipe elemen JSON di jalur kunci TairDoc. Tipe yang mungkin termasuk boolean, string, number, array, object, raw, reference, const, dan null.

Opsi

  • key: kunci TairDoc yang menentukan objek TairDoc tempat perintah dijalankan.

  • path: jalur dari kunci.

Nilai pengembalian

  • Jika operasi berhasil, tipe elemen dikembalikan.

  • Jika operasi gagal, nilai 0 dikembalikan.

  • Jika kunci atau jalur tidak ada, nil dikembalikan.

  • Jika tidak, pesan kesalahan dikembalikan.

Contoh

Jalankan perintah JSON.SET doc . '{"foo": "bar", "baz" : 42}' terlebih dahulu.

Perintah contoh:

JSON.TYPE doc .foo

Tanggapan contoh:

string

JSON.MERGE

Kategori

Deskripsi

Sintaksis

JSON.MERGE key path value

Kompleksitas waktu

O(N)

Deskripsi perintah

Menggabungkan nilai JSON ke dalam jalur dari kunci yang ditentukan. Perintah ini memungkinkan Anda melakukan operasi seperti menambahkan nilai baru, memperbarui nilai yang ada, dan menghapus nilai di jalur yang ditentukan.

Opsi

  • key: kunci TairDoc yang menentukan objek TairDoc tempat perintah dijalankan.

  • path: jalur dari kunci. Perintah ini mendukung sebagian sintaksis JSONPath, seperti $.a.b.c dan $.a['b'], tetapi tidak mendukung ekspresi kompleks seperti $.. dan $*.

  • value: nilai JSON yang akan digabungkan. Formatnya kompatibel dengan Json Merge Patch RFC7386.

Nilai pengembalian

  • Jika operasi berhasil, OK dikembalikan.

  • Jika nilai yang ditentukan tidak valid, terjadi kesalahan yang menunjukkan masalah dengan penguraian gabungan patch.

  • Selain itu, pesan kesalahan dikembalikan.

Contoh

Jalankan perintah JSON.SET doc $ '{"f1": {"a":1}, "f2":{"a":2}}' terlebih dahulu.

Perintah contoh:

JSON.MERGE doc $ '{"f1": null, "f2":{"a":3, "b":4}, "f3":[2,4,6]}'

Tanggapan contoh:

OK

Setelah menjalankan perintah, hasil dari JSON.GET doc . adalah:

"{\"f2\":{\"a\":3,\"b\":4},\"f3\":[2,4,6]}"

JSON.NUMINCRBY

Kategori

Deskripsi

Sintaksis

JSON.NUMINCRBY key path value

Kompleksitas waktu

O(N)

Deskripsi perintah

Menambahkan nilai elemen JSON di jalur kunci TairDoc. Elemen dan nilai yang ingin ditambahkan ke elemen tersebut harus memiliki tipe data yang sama, yaitu integer atau double.

Opsi

  • key: kunci TairDoc yang menentukan objek TairDoc tempat perintah dijalankan.

  • path: jalur dari kunci.

  • value: nilai yang akan ditambahkan.

Nilai pengembalian

  • Jika operasi berhasil, elemen yang bertambah di jalur dikembalikan.

  • Jika kunci atau jalur tidak ada, terjadi kesalahan.

  • Selain itu, pesan kesalahan dikembalikan.

Contoh

Jalankan perintah JSON.SET doc . '{"foo": "bar", "baz" : 42}' terlebih dahulu.

Perintah contoh:

JSON.NUMINCRBY doc .baz 10

Tanggapan contoh:

"52"

JSON.STRAPPEND

Kategori

Deskripsi

Sintaksis

JSON.STRAPPEND key path json-string

Kompleksitas waktu

O(N)

Deskripsi perintah

Menambahkan nilai json-string ke elemen JSON di jalur kunci TairDoc. Nilai json-string dan elemen JSON keduanya harus bertipe string.

Opsi

  • key: kunci TairDoc yang menentukan objek TairDoc tempat perintah dijalankan.

  • path: jalur dari kunci.

  • json-string: string yang akan ditambahkan ke nilai di jalur tersebut.

Nilai kembali

  • Jika operasi berhasil, panjang baru dari string di jalur tersebut dikembalikan.

  • Jika kunci tidak ada, nilai -1 dikembalikan.

  • Jika tidak, pesan kesalahan dikembalikan.

Contoh

Jalankan perintah JSON.SET doc . '{"foo": "bar", "baz" : 42}' terlebih dahulu.

Perintah contoh:

JSON.STRAPPEND doc .foo rrrrr

Tanggapan contoh:

(integer) 8

JSON.STRLEN

Kategori

Deskripsi

Sintaksis

JSON.STRLEN key path

Kompleksitas waktu

O(N)

Deskripsi perintah

Mengambil panjang string dari elemen JSON dari jalur kunci TairDoc. Elemen JSON harus bertipe string.

Opsi

  • key: kunci TairDoc yang menentukan objek TairDoc tempat perintah dijalankan.

  • path: jalur dari kunci.

Nilai balik

  • Jika operasi berhasil, panjang string dari elemen JSON di jalur dikembalikan.

  • Jika kunci tidak ada, nilai -1 dikembalikan.

  • Jika tidak, pesan kesalahan akan dikembalikan.

Contoh

Jalankan perintah JSON.SET doc . '{"foo": "bar", "baz" : 42}' terlebih dahulu.

Perintah contoh:

JSON.STRLEN doc .foo

Tanggapan contoh:

(integer) 3

JSON.ARRAPPEND

Kategori

Deskripsi

Sintaks

JSON.ARRAPPEND key path json [json ...]

Kompleksitas waktu

O(M×N), di mana M menentukan jumlah elemen JSON yang ingin Anda tambahkan dan N menentukan jumlah elemen dalam array.

Deskripsi perintah

Menambahkan satu atau lebih elemen JSON ke akhir array pada jalur kunci TairDoc.

Opsi

  • key: kunci TairDoc yang menentukan objek TairDoc tempat perintah dijalankan.

  • path: jalur dari kunci.

  • json: data yang akan dimasukkan.

Nilai pengembalian

  • Jika operasi berhasil, jumlah elemen dalam array dikembalikan.

  • Jika kunci tidak ada, nilai -1 dikembalikan.

  • Jika tidak, pesan kesalahan dikembalikan.

Contoh

Jalankan perintah JSON.SET doc . '{"id": [1,2,3]}' terlebih dahulu.

Perintah contoh:

JSON.ARRAPPEND doc .id null false true

Tanggapan contoh:

(integer) 6

JSON.ARRPOP

Kategori

Deskripsi

Sintaksis

JSON.ARRPOP key path [index]

Kompleksitas waktu

O(M×N), di mana M menentukan elemen anak dalam kunci dan N menentukan jumlah elemen dalam array.

Deskripsi perintah

Menghapus dan mengembalikan elemen yang sesuai dengan indeks yang ditentukan dalam array dari jalur kunci TairDoc.

Opsi

  • key: kunci TairDoc yang menentukan objek TairDoc tempat perintah dijalankan.

  • path: jalur dari kunci.

  • index: indeks dari array. Indeks dimulai dari 0. Angka negatif menunjukkan indeks terbalik. Jika parameter ini tidak ditentukan, nilai default adalah elemen terakhir.

Nilai pengembalian

  • Jika operasi berhasil, elemen akan dihapus dan dikembalikan.

  • Jika array kosong, pesan "ERR array index outflow" akan dikembalikan.

  • Selain itu, pesan kesalahan akan dikembalikan.

Contoh

Jalankan perintah JSON.SET doc . '{"id": [1,2,3]}' terlebih dahulu.

Perintah contoh:

JSON.ARRPOP doc .id 0

Tanggapan contoh:

"1"

JSON.ARRINSERT

Kategori

Deskripsi

Sintaksis

JSON.ARRINSERT key path [index] json [json ...]

Kompleksitas waktu

O(M×N), di mana M menentukan jumlah elemen JSON yang ingin Anda sisipkan dan N menentukan jumlah elemen dalam array.

Deskripsi perintah

Menyisipkan satu atau lebih elemen JSON ke dalam array pada jalur sebelum indeks yang ditentukan dalam kunci TairDoc.

Opsi

  • key: kunci TairDoc yang menentukan objek TairDoc tempat perintah dijalankan.

  • path: jalur dari kunci.

  • index: indeks dari array. Indeks dimulai dari 0. Angka negatif menunjukkan indeks terbalik. Jika parameter ini tidak ditentukan, nilai default adalah elemen terakhir.

  • json: data yang akan disisipkan.

Nilai pengembalian

  • Jika operasi berhasil, jumlah elemen dalam array dikembalikan.

  • Jika array kosong, pesan "ERR array index outflow" dikembalikan.

  • Selain itu, pesan kesalahan dikembalikan.

Contoh

Jalankan perintah JSON.SET doc . '{"id": [1,2,3]}' terlebih dahulu.

Perintah contoh:

JSON.ARRINSERT doc .id 0 10 15

Tanggapan contoh:

(integer) 5

JSON.ARRLEN

Kategori

Deskripsi

Sintaksis

JSON.ARRLEN key path

Kompleksitas waktu

O(N)

Deskripsi perintah

Mengambil panjang array di jalur kunci TairDoc.

Opsi

  • key: kunci TairDoc yang menentukan objek TairDoc tempat perintah dijalankan.

  • path: jalur dari kunci.

Nilai pengembalian

  • Jika operasi berhasil, panjang array dikembalikan.

  • Jika kunci tidak ada, nilai -1 dikembalikan.

  • Jika tidak, pesan kesalahan akan dikembalikan.

Contoh

Jalankan perintah JSON.SET doc . '{"id": [1,2,3]}' terlebih dahulu.

Perintah contoh:

JSON.ARRLEN doc .id

Tanggapan contoh:

(integer) 3

JSON.ARRTRIM

Kategori

Deskripsi

Sintaksis

JSON.ARRTRIM key path start stop

Kompleksitas waktu

O(N)

Deskripsi perintah

Memotong array di jalur kunci TairDoc. Perintah ini mempertahankan elemen-elemen dalam array yang berada di antara nilai awal dan nilai akhir.

Opsi

  • key: kunci TairDoc yang menentukan objek TairDoc tempat perintah dijalankan.

  • path: jalur dari kunci.

  • start: posisi awal pemotongan. Nilainya adalah indeks yang dimulai dari 0. Elemen pada posisi ini termasuk dalam array yang dipotong.

  • stop: posisi akhir pemotongan. Nilainya adalah indeks yang dimulai dari 0. Elemen pada posisi ini termasuk dalam array yang dipotong.

Nilai kembali

  • Jika operasi berhasil, panjang array setelah pemotongan dikembalikan.

  • Jika kunci tidak ada, nilai -1 dikembalikan.

  • Jika tidak, pesan kesalahan akan dikembalikan.

Contoh

Jalankan perintah JSON.SET doc . '{"id": [1,2,3,4,5,6]}' terlebih dahulu.

Perintah contoh:

JSON.ARRTRIM doc .id 3 4

Tanggapan contoh:

(integer) 2

JSONPath

TairDoc mendukung sintaks JSONPath yang kompatibel berikut:

JSONPath

Deskripsi

$

Elemen root.

@

Elemen saat ini.

.name

Elemen anak.

..

Elemen yang memenuhi persyaratan posisi.

*

Wildcard yang dapat mewakili semua elemen anak atau elemen array.

None

Indeks array dimulai dari 0. Contoh: [0]. Elemen ini mendukung daftar dan nama elemen, seperti [0,1] dan ['nama'].

[start:end:step]

Pemilih irisan array. Elemen diambil dari awal hingga akhir dengan penambahan langkah. Contohnya, [0:3:1] berarti elemen dipilih dari elemen ke-nol hingga elemen ketiga. Jika penambahan adalah -1, seperti pada [3:0:-1], elemen dipilih dari elemen ketiga kembali ke elemen ke-nol.

?...

Filter Selector.

()

Mendukung ekspresi dengan prioritas sebagai berikut: ( ) > && > ||. Untuk informasi lebih lanjut, lihat JSONPath.

Contoh Kueri

  1. Buat dokumen JSON.

    Contoh perintah:

    JSON.SET dockey $
    '{
        "store": {
            "book": [{
                    "category": "reference",
                    "author": "Nigel Rees",
                    "title": "Sayings of the Century",
                    "price": 8.95
                },
                {
                    "category": "fiction",
                    "author": "Evelyn Waugh",
                    "title": "Sword of Honour",
                    "price": 12.99
                },
                {
                    "category": "fiction",
                    "author": "Herman Melville",
                    "title": "Moby Dick",
                    "isbn": "0-553-21311-3",
                    "price": 8.99
                },
                {
                    "category": "fiction",
                    "author": "J. R. R. Tolkien",
                    "title": "The Lord of the Rings",
                    "isbn": "0-395-19395-8",
                    "price": 22.99
                }
            ],
            "bicycle": {
                "color": "red",
                "price": 19.95
            }
        },
        "expensive": 10
    }'

    Hasil berikut diharapkan:

    OK
  2. Kueri dokumen.

    Contoh kueri:

    Pemilih root

    # Kueri seluruh objek JSON.
    JSON.GET dockey $
    
    # Output yang diharapkan:
    "[{"store":{"book":[{"category":"reference","author":"Nigel Rees","title":"Sayings of the Century","price":8.95},{"category":"fiction","author":"Evelyn Waugh","title":"Sword of Honour","price":12.99},{"category":"fiction","author":"Herman Melville","title":"Moby Dick","isbn":"0-553-21311-3","price":8.99},{"category":"fiction","author":"J. R. R. Tolkien","title":"The Lord of the Rings","isbn":"0-395-19395-8","price":22.99}],"bicycle":{"color":"red","price":19.95}}}]"

    Pemilih titik

    # Kueri semua informasi tentang sepeda di toko.
    JSON.GET dockey $.store.bicycle.*
    
    # Output yang diharapkan:
    "["red",19.95]"
    
    # Kueri harga sepeda.
    JSON.GET dockey $.store.bicycle.price
    
    # Output yang diharapkan:
    "[19.95]"

    Pemilih indeks

    # Kueri semua informasi tentang buku pertama di toko.
    JSON.GET dockey $.store.book[0]
    
    # Output yang diharapkan:
    "[{"category":"reference","author":"Nigel Rees","title":"Sayings of the Century","price":8.95}]"
    
    # Kueri judul semua buku di toko.
    JSON.GET dockey "$.store.book[*]['title']"
    
    # Output yang diharapkan:
    "["Sayings of the Century","Sword of Honour","Moby Dick","The Lord of the Rings"]"

    Pemilih irisan array

    # Kueri semua informasi tentang buku pertama hingga ketiga di toko menggunakan pemotongan array dengan langkah 1.
    JSON.GET dockey $.store.book[0:2:1]
    
    # Output yang diharapkan:
    "[{"category":"reference","author":"Nigel Rees","title":"Sayings of the Century","price":8.95},{"category":"fiction","author":"Herman Melville","title":"Moby Dick","isbn":"0-553-21311-3","price":8.99},{"category":"fiction","author":"Evelyn Waugh","title":"Sword of Honour","price":12.99}]"

    Pemilih turunan

    # Kueri semua informasi harga di toko, termasuk harga buku dan sepeda.
    JSON.GET dockey $..price
    
    # Output yang diharapkan:
    "[8.95,12.99,8.99,22.99,19.95]"

    Pemilih daftar

    # Kueri semua informasi tentang buku pertama dan ketiga di toko.
    JSON.GET dockey $.store.book[0,2]
    
    # Output yang diharapkan:
    "[{"category":"reference","author":"Nigel Rees","title":"Sayings of the Century","price":8.95},{"category":"fiction","author":"Herman Melville","title":"Moby Dick","isbn":"0-553-21311-3","price":8.99}]"

    Pemilih filter

    # Ekspresi @
    # Kueri informasi tentang buku yang memiliki elemen isbn di toko.
    JSON.GET dockey $.store.book[?(@.isbn)]
    # Output yang diharapkan:
    "[{"category":"fiction","author":"Herman Melville","title":"Moby Dick","isbn":"0-553-21311-3","price":8.99},{"category":"fiction","author":"J. R. R. Tolkien","title":"The Lord of the Rings","isbn":"0-395-19395-8","price":22.99}]"
    
    
    # Ekspresi COMP.
    # Kueri informasi tentang buku yang harganya kurang dari 10.
    JSON.GET dockey '$.store.book[?(@.price < 10)]'
    # Output yang diharapkan:
    "[{"category":"reference","author":"Nigel Rees","title":"Sayings of the Century","price":8.95},{"category":"fiction","author":"Herman Melville","title":"Moby Dick","isbn":"0-553-21311-3","price":8.99}]"
    
    # Ekspresi gabungan.
    # Kueri informasi tentang buku yang harganya sama dengan 12.99 atau lebih besar dari 19.95 atau nilai elemen kategori adalah referensi.
    JSON.GET dockey "$..book[?((@.price == 12.99 || @.price > $.store.bicycle.price) || @.category == 'reference')]"
    # Output yang diharapkan:
    "[{"category":"reference","author":"Nigel Rees","title":"Sayings of the Century","price":8.95},{"category":"fiction","author":"J. R. R. Tolkien","title":"The Lord of the Rings","isbn":"0-395-19395-8","price":22.99},{"category":"fiction","author":"Evelyn Waugh","title":"Sword of Honour","price":12.99}]"

JSONPointer

TairDoc mendukung sintaks JSONPointer secara penuh. Untuk informasi lebih lanjut, lihat JavaScript Object Notation (JSON) Pointer.

Contoh berikut menunjukkan fungsionalitas ini.

Anda dapat menjalankan perintah JSON.SET doc . '{"foo": "bar", "baz" : [1,2,3]}' terlebih dahulu.

Perintah contoh:

# Mengambil nilai pertama dalam array .baz dari kunci doc.
JSON.GET doc /baz/0

Tanggapan contoh:

"1"