Nach Dateien mit einem bestimmten Label oder Feldwert suchen

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

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 labels
  • not '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 NULL
  • labels/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_leads
  • NOT '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:

  • includeLabels als durch Kommas getrennte Liste von IDs.

  • labelInfo im Parameter fields, um anzugeben, dass labelInfo innerhalb von includeLabels zurü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 labelId eines zurückzugebenden Labels.
  • LABEL_2_ID: Der zweite labelId eines zurückzugebenden Labels.