Auf dieser Seite wird beschrieben, wie Sie nach Dateien mit einem bestimmten Label oder Feldwert suchen.
Typen von Labelfeldern
Google Drive-Labelfelder sind stark typisiert. Jeder Typ unterstützt unterschiedliche Indexierungs- und Suchsemantiken. In der folgenden Tabelle sind die verfügbaren Datentypen aufgeführt.
| Typ | Optionen für Labeltypen | Unterstützte Suchoperatoren |
|---|---|---|
| Text | TextOptions | is null, is not null, =, contains, starts with |
| Langer Text | LongTextOptions | is null, is not null, contains |
| Ganzzahl | IntegerOptions | is null, is not null, =, !=, <, >, <=, >= |
| Datum | DateOptions | is null, is not null, =, !=, <, >, <=, >= |
| Auswahl | SelectionOptions | is null, is not null, =, != |
| Nutzer | UserOptions | is null, is not null, =, != |
| Auswahlliste | SelectionOptions (mit max_entries > 1) | is null, is not null, in, not in |
| Nutzerliste | UserOptions (mit max_entries > 1) | is null, is not null, in, not in |
Suchbeispiele
1. Nach dem Vorhandensein eines Labels oder Felds suchen
Sie können nach Elementen suchen, auf die ein bestimmtes Label angewendet wurde (oder nicht):
'labels/contract' in labelsnot 'labels/contract' in labels
Sie können auch nach Elementen suchen, bei denen ein bestimmtes Feld festgelegt wurde (oder nicht):
labels/contract.comment IS NOT NULLlabels/contract.comment IS NULL
2. Nach Feldern mit einem einzelnen Wert suchen
Sie können Suchanfragen schreiben, die mit erwarteten Feldwerten übereinstimmen. In der folgenden Tabelle sind die gültigen Feldabfragen aufgeführt:
| Was Sie abfragen möchten | Abfragestring |
|---|---|
| Elemente, bei denen der Kommentar auf „Hallo“ gesetzt ist | labels/contract.comment = 'hello' |
| Dateien, in denen ein Kommentar mit „Hallo“ beginnt | labels/contract.comment STARTS WITH 'hello' |
| Dateien, in denen der Status ausgeführt wird | labels/contract.status = 'executed' |
| Dateien, deren Status nicht „Ausgeführt“ ist | labels/contract.status != 'executed' |
| Dateien, bei denen „execution_date“ vor einem bestimmten Datum liegt | labels/contract.execution_date < '2020-06-22' |
| Dateien, in denen „value_usd“ (Ganzzahl) kleiner als ein bestimmter Wert ist | labels/contract.value_usd < 2000 |
| Dateien, in denen „client_contact“ auf eine bestimmte E‑Mail-Adresse festgelegt ist | labels/contract.client_contact = 'alex@altostrat.com' |
3. Suche basierend auf Feldern mit mehrwertigen Feldern (z. B. ListOptions.max_entries > 1)
Felder, die mehrere Werte unterstützen, können nur mit dem IN-Operator abgefragt werden:
'EMAIL_ADDRESS' IN labels/project.project_leadsNOT 'EMAIL_ADDRESS' IN labels/project.project_leads
Beispiel
Das folgende Codebeispiel zeigt, wie Sie mit einem oder mehreren labelId alle Dateien mit einem bestimmten Label oder Feldwert aus einer Dateiressource in Drive auflisten. Dabei wird auch die Methode files.list verwendet. Der Anfragetext muss leer sein.
Wenn Sie labelInfo in die Antwort einbeziehen möchten, müssen Sie auch Folgendes angeben:
includeLabelsals durch Kommas getrennte Liste von IDs.labelInfoim Parameterfields, um anzugeben, dasslabelInfoinnerhalb vonincludeLabelszurückgegeben werden soll.
Bei Erfolg enthält der Antworttext die Liste der Dateien.
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;
}
Ersetzen Sie Folgendes:
- LABEL_1_ID: Der erste
labelIdeines zurückzugebenden Labels. - LABEL_2_ID: Der zweite
labelIdeines zurückzugebenden Labels.