Nach Dateien mit einem bestimmten Label oder Feldwert suchen

Auf dieser Seite wird beschrieben, wie Sie nach Dateien suchen, auf die ein bestimmtes Label oder Feldwert angewendet wurde.

Labelfeldtypen

Google Drive-Labelfelder sind stark typisiert, wobei jeder Typ unterschiedliche Indexierungs- und Suchsemantiken unterstützt. In der folgenden Tabelle sind die verfügbaren Datentypen aufgeführt.

Typ Optionen für Labeltyp Unterstützte Suchoperatoren
Text TextOptions is null, is not null, =, contains, starts with
Langer Text LongTextOptions is null, is not null, contains
Integer 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 Auswahloptionen (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

1. Anhand eines Labels oder Felds suchen

Sie können nach Elementen suchen, auf die ein bestimmtes Label angewendet wurde oder nicht:

  • 'labels/contract' in labels
  • not 'labels/contract' in labels

Sie können auch nach Elementen suchen, für die ein bestimmtes Feld festgelegt wurde oder nicht:

  • labels/contract.comment IS NOT NULL
  • labels/contract.comment IS NULL

2. Anhand von einwertigen Feldern suchen

Sie können Suchanfragen so schreiben, dass sie den erwarteten Feldwerten entsprechen. Die folgende Tabelle zeigt die gültigen Feldabfragen:

Was Sie abfragen möchten Abfragestring
Elemente, bei denen der Kommentar auf „Hallo“ festgelegt ist labels/contract.comment = 'hello'
Dateien, deren Kommentar mit „hello“ beginnt labels/contract.comment STARTS WITH 'hello'
Dateien, in denen der Status ausgeführt wird labels/contract.status = 'executed'
Dateien, in denen der Status nicht ausgeführt wird labels/contract.status != 'executed'
Dateien, deren Ausführungsdatum vor einem bestimmten Datum liegt labels/contract.execution_date < '2020-06-22'
Dateien, bei 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 nach 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_leads
  • NOT 'EMAIL_ADDRESS' IN labels/project.project_leads

Beispiel

Im folgenden Codebeispiel wird gezeigt, wie Sie mit einem oder mehreren labelId alle Dateien mit einem bestimmten Label oder Feldwert aus einer Drive-Dateiressource auflisten. Außerdem wird die Methode files.list verwendet. Der Anfragetext muss leer sein.

Wenn Sie labelInfo in der Antwort verwenden möchten, müssen Sie auch Folgendes angeben:

  • includeLabels als durch Kommas getrennte Liste von IDs.

  • labelInfo im Parameter fields, um anzugeben, dass die labelInfo innerhalb von includeLabels zurückgegeben werden soll.

Wenn der Vorgang erfolgreich ist, 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: Die erste labelId eines Labels, das zurückgegeben werden soll.
  • LABEL_2_ID: Die zweite labelId eines Labels, das zurückgegeben werden soll.