iOS
...
Parse Swift SDK
Data Objects

Panduan Kueri ParseSwift untuk Pengembang iOS di Back4App

20min

Buku Resep Kuery untuk ParseSwift

Pendahuluan

Dalam panduan kuery dasar, kami memperkenalkan beberapa metode dasar untuk membangun kuery dan mengambil data dari sebuah Back4App Database. ParseSwift SDK menawarkan cara praktis untuk membangun kuery yang lebih kompleks untuk aplikasi dunia nyata.

Dalam panduan ini, Anda akan menyelami lebih dalam ke dalam Query<U> (generik) kelas dan melihat semua metode yang dapat Anda gunakan untuk membangun kuery Anda. Anda akan menggunakan kelas database sederhana (disebut Profile) dengan beberapa data yang dipalsukan untuk melakukan kuery menggunakan swift.

Sebelum memulai, kita harus menetapkan beberapa konsep tentang objek dan tipe data. Dalam panduan ini, kami merujuk sebagai objek kepada setiap tipe data (seperti structs) yang dapat disimpan dalam database. Dalam beberapa situasi, mereka juga disebut sebagai item atau elemen. Properti adalah anggota dari tipe data (kebanyakan structs). Namun, di sini, kami biasanya menyebutnya sebagai field. ParseSwift menggunakan istilah ‘kunci’, untuk menunjukkan nama properti. Jadi, setiap parameter yang diberi label sebagai ‘kunci’ dalam metode apa pun dari ParseSwift SDK menunjukkan bahwa nilainya harus cocok dengan nama field.

Prasyarat

Untuk menyelesaikan tutorial ini, Anda akan membutuhkan:

Tujuan

Untuk menjelajahi berbagai metode yangQuery<U> kelas sediakan untuk mengeksekusi kueri.

Kelas Query<U>

Untuk panduan ini, kami akan mengkueri informasi tentang kontak seseorang. Data ini disimpan di bawah kelas Profile di Back4App Database. Untuk mengambil profil melalui Aplikasi iOS, kami perlu membuat Profile struct yang akan berisi informasi tersebut.

Swift


Selain itu, kami menggunakan objek Keanggotaan untuk menunjukkan bagaimana kueri antara Profil dan Keanggotaan saling berinteraksi. Struktur Keanggotaan diimplementasikan dengan cara berikut

Swift


Setiap operasi kueri pada Database Back4App dilakukan oleh kelas generik Query<Profil> di mana tipe generik Profil (yang sesuai dengan ParseSwift protokol) adalah objek yang ingin kita ambil. Setelah menginstansiasi objek Query<Profil> , kita harus memanggil salah satu metode find(_) (lihat panduan panduan kueri dasar) untuk menangani hasil yang dikembalikan dari kueri.

Anda dapat membaca lebih lanjut tentang Query<U> kelas di sini pada dokumentasi resmi.

Menyimpan Objek Data

Dengan cuplikan berikut, kami membuat dan menyimpan beberapa data untuk menguji berbagai kueri

Swift


Setelah kode di atas dijalankan, kita seharusnya memiliki database kecil untuk dikerjakan.

Lihat lebih lanjut tentang cara menyimpan data dengan ParseSwift di Objek Data iOS.

Pengambil kueri

Metode ini bertanggung jawab untuk menjalankan kueri dan mengambil hasilnya, selalu ada dalam implementasi kueri Anda.

Find
First
Count
Distinct
Find all
Using the objectId


Kueri dengan batasan pada bidang tipe string

Kami sekarang mulai menerapkan batasan spesifik pada kueri. Pertama, kami akan memberlakukan batasan yang memilih objek hanya ketika sebuah String bidang tipe memenuhi kondisi tertentu. Ini dan batasan tipe lainnya yang diberlakukan pada sebuah Query<Profile> objek dilakukan melalui objek QueryConstraint . Di bawah ini dan di bagian berikutnya, kami merinci cara membangun batasan semacam itu.

Equal
Regular expression
Contains substring
Matches text


Kueri dengan batasan pada bidang yang dapat dibandingkan

Sangat umum untuk mencoba memilih objek di mana bidang tipe angka tertentu harus sama, berbeda, lebih besar, atau lebih kecil dari nilai yang diberikan. Ini dilakukan dengan menggunakan operasi perbandingan berikut

Equal
Not equal
Less than
Less than or equal
Greater than
Greater than or equal


Keterbatasan ini juga berlaku pada Tanggal bidang tipe. Misalnya, kita bisa memiliki

Swift


Untuk Bool bidang tipe, kita memiliki opsi Sama dengan dan Tidak sama dengan. Misalnya

Swift


Kueri dengan batasan yang melibatkan geolokasi

Untuk bidang yang mengandung data lokasi (yaitu, dari tipe ParseGeoPoint) kami memiliki opsi kueri berikut.

Near
Contains
Within geo box
Within km/mph
Within Polygon
Within radians


Kueri dengan batasan yang melibatkan bidang tipe array

Ketika objek yang ingin kita ambil perlu memenuhi kondisi tertentu pada salah satu bidang tipe array mereka, ParseSwift SDK menyediakan alternatif berikut untuk mencapainya

Contained in
Contained by
Contains all


Kueri lanjutan

Hingga sekarang kami memperkenalkan kondisi utama yang dapat kami terapkan pada bidang tertentu untuk memilih objek dari Database Back4App menggunakan ParseSwift SDK. Di bagian ini kami melanjutkan dengan komposisi kueri dan kueri lanjutan.

Exists
Does not exists
Matches key in query
Does not match key in query


Pengurutan kueri

Mengurutkan hasil dari kueri adalah kunci sebelum mulai menampilkan atau memanipulasi hasil tersebut. ParseSwift SDK menyediakan opsi berikut untuk mencapai itu.

Ascending
Descending
Text Score


Pemilihan bidang

Tergantung pada data apa yang diperlukan selama kueri, ini dapat memakan waktu lebih atau kurang. Dalam beberapa skenario, mungkin cukup untuk mengambil bidang tertentu dari sebuah objek dan mengabaikan bidang yang tidak perlu. Selain itu, dengan hanya memilih bidang yang kita butuhkan dari sebuah kueri, kita menghindari pengambilan berlebih dan meningkatkan kinerja pada proses pengambilan.

Exclude
Include
Include all
Select


Paginasi

Dalam basis data besar, paginasi adalah fitur dasar untuk melakukan kueri dan menangani sejumlah besar hasil. ParseSwift SDK menyediakan metode berikut untuk mengelola situasi tersebut.

Limit
Skip
With count


Kueri gabungan

Metode ini akan membuat kueri gabungan, yang dapat menggabungkan lebih dari satu Query<Profile> instance untuk mencapai hasil yang lebih kompleks.

And
Nor
Or


Terkait Database

Metode ini terkait dengan preferensi dan operasi database.

aggregate
explain
readPreference


Kesimpulan

Dengan menggunakan berbagai metode, objek, dan operator yang disediakan oleh ParseSwift SDK, kami dapat memahami cara membangun dan mengambil objek dari Back4App Database. Dengan buku masak ini, Anda seharusnya dapat melakukan kueri dengan batasan yang sangat fleksibel dan mengelola hasilnya sesuai dengan kasus penggunaan Anda. Untuk detail lebih lanjut tentang topik di atas, Anda dapat merujuk ke repositori ParseSwift.