Questa pagina descrive come cercare file con un'etichetta o un valore di campo specifico applicato.
Tipi di campi etichetta
I campi delle etichette di Google Drive sono fortemente tipizzati e ogni tipo supporta semantiche di indicizzazione e ricerca diverse. La tabella seguente mostra i tipi di dati disponibili.
| Tipo | Opzioni per il tipo di etichetta | Operatori di ricerca supportati |
|---|---|---|
| Testo | TextOptions | is null, is not null, =, contains, starts with |
| Numero intero | IntegerOptions | is null, is not null, =, !=, <, >, <=, >= |
| Data | DateOptions | is null, is not null, =, !=, <, >, <=, >= |
| Selezione | SelectionOptions | is null, is not null, =, != |
| Utente | UserOptions | is null, is not null, =, != |
| Elenco selezioni | SelectionOptions (con max_entries > 1) | is null, is not null, in, not in |
| Elenco utenti | UserOptions (con max_entries > 1) | is null, is not null, in, not in |
Esempi di ricerche:
1. Cerca in base alla presenza di un'etichetta o di un campo
Puoi cercare elementi a cui è stata applicata (o non è stata applicata) un'etichetta specifica:
'labels/contract' in labelsnot 'labels/contract' in labels
Puoi anche cercare elementi in cui è stato impostato (o non è stato impostato) un campo specifico:
labels/contract.comment IS NOT NULLlabels/contract.comment IS NULL
2. Cerca in base ai campi a valore singolo
Puoi scrivere query di ricerca per trovare i valori dei campi previsti. La tabella seguente mostra le query di campo valide:
| Cosa vuoi interrogare | Stringa di query |
|---|---|
| Elementi in cui il commento è impostato su "hello" | labels/contract.comment = 'hello' |
| File in cui il commento inizia con "hello" | labels/contract.comment STARTS WITH 'hello' |
| File in cui lo stato è "executed" | labels/contract.status = 'executed' |
| File in cui lo stato non è "executed" | labels/contract.status != 'executed' |
| File in cui execution_date è precedente a una data specifica | labels/contract.execution_date < '2020-06-22' |
| File in cui value_usd (numero intero) è inferiore a un valore specifico | labels/contract.value_usd < 2000 |
| File in cui client_contact è impostato su un indirizzo email specifico | labels/contract.client_contact = 'alex@altostrat.com' |
3. Cerca in base ai campi con campi multivalore (ad esempio ListOptions.max_entries > 1)
I campi che supportano più valori possono essere interrogati solo utilizzando l'operatore IN:
'EMAIL_ADDRESS' IN labels/project.project_leadsNOT 'EMAIL_ADDRESS' IN labels/project.project_leads
Esempio
Il seguente esempio di codice mostra come utilizzare uno o più labelId per elencare tutti i
file con un'etichetta o un valore di campo specifico da una risorsa file
di Drive. Utilizza anche il
files.list metodo. Il corpo della richiesta deve essere vuoto.
Se vuoi includere labelInfo nella risposta, devi anche specificare:
includeLabelscome elenco di ID separati da virgole.labelInfonel parametrofieldsper indicare che vuoi chelabelInfovenga restituito all'interno diincludeLabels.
In caso di esito positivo, il corpo della risposta contiene l'elenco dei 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;
}
Sostituisci quanto segue:
- LABEL_1_ID: il primo
labelIddi un'etichetta da restituire. - LABEL_2_ID: il secondo
labelIddi un'etichetta da restituire.