Halaman ini menjelaskan cara menelusuri file dengan label atau nilai kolom tertentu yang diterapkan.
Jenis kolom label
Kolom label Google Drive memiliki jenis yang kuat dengan setiap jenis yang mendukung semantik penelusuran dan pengindeksan yang berbeda. Tabel berikut menunjukkan jenis data yang tersedia.
Jenis | Opsi jenis label | Operator penelusuran yang didukung |
---|---|---|
Teks | TextOptions | is null, is not null, =, contains, starts with |
Teks Panjang | LongTextOptions | is null, is not null, contains |
Bilangan Bulat | IntegerOptions | is null, is not null, =, !=, <, >, <=, >= |
Tanggal | DateOptions | is null, is not null, =, !=, <, >, <=, >= |
Pilihan | SelectionOptions | is null, is not null, =, != |
Pengguna | UserOptions | is null, is not null, =, != |
Daftar Pilihan | SelectionOptions (dengan max_entries > 1) | is null, is not null, in, not in |
Daftar Pengguna | UserOptions (dengan max_entries > 1) | is null, is not null, in, not in |
Contoh penelusuran
1. Menelusuri berdasarkan keberadaan label atau kolom
Anda dapat menelusuri item yang telah (atau belum) menerapkan label tertentu:
'labels/contract' in labels
not 'labels/contract' in labels
Anda juga dapat menelusuri item yang kolomnya telah (atau belum) ditetapkan:
labels/contract.comment IS NOT NULL
labels/contract.comment IS NULL
2. Menelusuri berdasarkan kolom nilai tunggal
Anda dapat menulis kueri penelusuran agar cocok dengan nilai kolom yang diharapkan. Tabel berikut menunjukkan kueri kolom yang valid:
Yang ingin Anda buat kueri | String kueri |
---|---|
Item dengan komentar ditetapkan ke "halo" | labels/contract.comment = 'hello' |
File yang komentarnya diawali dengan "hello" | labels/contract.comment STARTS WITH 'hello' |
File tempat status dijalankan | labels/contract.status = 'executed' |
File yang statusnya tidak dieksekusi | labels/contract.status != 'executed' |
File dengan execution_date sebelum tanggal tertentu | labels/contract.execution_date < '2020-06-22' |
File dengan value_usd (bilangan bulat) kurang dari nilai tertentu | labels/contract.value_usd < 2000 |
File dengan client_contact ditetapkan ke alamat email tertentu | labels/contract.client_contact = 'alex@altostrat.com' |
3. Menelusuri berdasarkan kolom dengan kolom multinilai (seperti ListOptions.max_entries > 1)
Kolom yang mendukung beberapa nilai hanya dapat dikueri menggunakan operator IN:
'EMAIL_ADDRESS' IN labels/project.project_leads
NOT 'EMAIL_ADDRESS' IN labels/project.project_leads
Contoh
Contoh kode berikut menunjukkan cara menggunakan satu atau beberapa labelId
untuk mencantumkan semua file dengan label atau nilai kolom tertentu dari resource file Drive. Class ini juga menggunakan
metode files.list
. Isi permintaan harus
kosong.
Jika ingin menyertakan labelInfo
dalam respons, Anda juga harus menentukan:
includeLabels
sebagai daftar ID yang dipisahkan koma.labelInfo
dalam parameterfields
untuk menunjukkan bahwa Anda inginlabelInfo
ditampilkan dalamincludeLabels
.
Jika berhasil, isi respons akan berisi daftar file.
Java
List<File> fileList = driveService.files().list().setIncludeLabels("LABEL_1_ID,LABEL_2_ID").setFields("items(labelInfo, id)").setQ("'labels/LABEL_1_ID' in labels and 'labels/LABEL_2_ID' in labels").execute().getItems();
Python
file_list = drive_service.files().list(includeLabels="LABEL_1_ID,LABEL_2_ID", q="'labels/LABEL_1_ID' in labels and 'labels/LABEL_2_ID' in labels", fields="items(labelInfo, id)").execute();
Node.js
/**
* Search for Drive files with specific labels
* @return{obj} file list with labelInfo
**/
async function searchForFileWithLabels() {
// Get credentials and build service
// TODO (developer) - Use appropriate auth mechanism for your app
const {GoogleAuth} = require('google-auth-library');
const {google} = require('googleapis');
const auth = new GoogleAuth({scopes: 'https://www.googleapis.com/auth/drive'});
const service = google.drive({version: 'v3', auth});
try {
const fileList = await service.files.list({
includeLabels: 'LABEL_1_ID,LABEL_2_ID',
q: '\'labels/LABEL_1_ID\' in labels and \'labels/LABEL_2_ID\' in labels',
fields:'files(labelInfo, id)',
});
return file;
} catch (err) {
// TODO (developer) - Handle error
throw err;
}
Ganti kode berikut:
- LABEL_1_ID:
labelId
pertama dari label yang akan ditampilkan. - LABEL_2_ID:
labelId
kedua dari label yang akan ditampilkan.