Bu sayfada, belirli bir etiket veya alan değeri uygulanmış dosyaların nasıl aranacağı açıklanmaktadır.
Etiket alanı türleri
Google Drive etiket alanları, farklı dizine ekleme ve arama anlamlarını destekleyen her tür için güçlü bir şekilde yazılır. Aşağıdaki tabloda kullanılabilir veri türleri gösterilmektedir.
Tür | Etiket türü seçenekleri | Desteklenen arama operatörleri |
---|---|---|
Metin | TextOptions | is null, is not null, =, contains, starts with |
Uzun Metin | LongTextOptions | is null, is not null, contains |
Tamsayı | IntegerOptions | is null, is not null, =, !=, <, >, <=, >= |
Tarih | DateOptions | is null, is not null, =, !=, <, >, <=, >= |
Seçim | SelectionOptions | is null, is not null, =, != |
Kullanıcı | UserOptions | is null, is not null, =, != |
Seçim Listesi | Seçim Seçenekleri (max_entries > 1 ile) | is null, is not null, in, not in |
Kullanıcı Listesi | UserOptions (max_entries > 1 ile) | is null, is not null, in, not in |
Arama örnekleri
1. Etiket veya alan varlığına göre arama yapın
Belirli bir etiketin uygulandığı (veya uygulanmadığı) öğeleri arayabilirsiniz:
'labels/contract' in labels
not 'labels/contract' in labels
Ayrıca, belirli bir alanın ayarlandığı (veya ayarlanmamış) olduğu öğeleri de arayabilirsiniz:
labels/contract.comment IS NOT NULL
labels/contract.comment IS NULL
2. Tek değerli alanlara göre arama yapın
Beklenen alan değerleriyle eşleşecek arama sorguları yazabilirsiniz. Aşağıdaki tabloda geçerli alan sorguları gösterilmektedir:
Sorgulamak istediğiniz şey | Sorgu dizesi |
---|---|
Yorumun "merhaba" olarak ayarlandığı öğeler | labels/contract.comment = 'hello' |
Yorumun "hello" ile başladığı dosyalar | labels/contract.comment STARTS WITH 'hello' |
Durumun yürütüldüğü dosyalar | labels/contract.status = 'executed' |
Durumun yürütülmediği dosyalar | labels/contract.status != 'executed' |
yürütme_tarihi belirli bir tarihten önce olan dosyalar | labels/contract.execution_date < '2020-06-22' |
value_usd (tam sayı) değerinin belirli bir değerden küçük olduğu dosyalar | labels/contract.value_usd < 2000 |
client_contact'ın belirli bir e-posta adresi olarak ayarlandığı dosyalar | labels/contract.client_contact = 'alex@altostrat.com' |
3. Birden çok değerli alanlara sahip alanlara göre arama yapın (ListOptions.max_entries > 1 gibi)
Birden çok değeri destekleyen alanlar, yalnızca IN operatörü kullanılarak sorgulanabilir:
'EMAIL_ADDRESS' IN labels/project.project_leads
NOT 'EMAIL_ADDRESS' IN labels/project.project_leads
Örnek
Aşağıdaki kod örneğinde, bir Drive dosya kaynağından belirli bir etikete veya alan değerine sahip tüm dosyaları listelemek için bir veya daha fazla labelId
özelliğinin nasıl kullanılacağı gösterilmektedir. Ayrıca files.list
yöntemini kullanır. İsteğin gövdesi boş olmalıdır.
Yanıta labelInfo
öğesini dahil etmek istiyorsanız aşağıdakileri de belirtmeniz gerekir:
includeLabels
kullanabilirsiniz.fields
parametresindekilabelInfo
,labelInfo
öğesininincludeLabels
içinde döndürülmesini istediğinizi belirtir.
Başarılı olursa yanıt gövdesi, dosya listesini içerir.
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;
}
Aşağıdakini değiştirin:
- LABEL_1_ID: Döndürülecek etiketin ilk
labelId
değeri. - LABEL_2_ID: Döndürülecek etiketin ikinci
labelId
öğesi.