Cómo buscar archivos con una etiqueta o un valor de campo específicos

Organiza tus páginas con colecciones Guarda y categoriza el contenido según tus preferencias.

En esta página, se describe cómo buscar archivos con una etiqueta o un valor de campo específicos.

Tipos de campo de etiquetas

Los campos de etiqueta de Google Drive están fuertemente escritos y cada tipo admite una semántica de búsqueda y de indexación diferentes. En la siguiente tabla, se muestran los tipos de datos disponibles.

Tipo Opciones de tipo de etiqueta Operadores de búsqueda compatibles
Texto Opciones de texto is null, is not null, =, contains, starts with
Texto largo Opciones de LongText is null, is not null, contains
Número entero Opciones de número entero is null, is not null, =, !=, <, >, <=, >=
Fecha Opciones de fecha is null, is not null, =, !=, <, >, <=, >=
Selección Opciones de selección is null, is not null, =, !=
Usuario Opciones de usuario is null, is not null, =, !=
Lista de selección SelectionOptions (con max_entries > 1) is null, is not null, in, not in
Lista de usuarios UserOptions (con max_entries > 1) is null, is not null, in, not in

1. Búsqueda basada en la presencia de una etiqueta o un campo

Puedes buscar los elementos en los que se aplicó (o no se aplicó) una etiqueta específica:

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

También puedes buscar elementos en los que se haya establecido (o no) un campo específico:

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

2. Búsqueda en función de campos de valores únicos

Puedes escribir consultas de búsqueda para que coincidan con los valores de campo esperados. En la siguiente tabla, se muestran las consultas de campo válidas:

Qué deseas consultar String de consulta
Elementos en los que el comentario está configurado como "hola" labels/contract.comment = 'hello'
Archivos en los que el comentario comienza con “hello” labels/contract.comment STARTS WITH 'hello'
Archivos en los que se ejecuta el estado labels/contract.status = 'executed'
Archivos en los que no se ejecuta el estado labels/contract.status != 'executed'
Archivos en los que la ejecución_fecha es anterior a una fecha específica labels/contract.execution_date < '2020-06-22'
Archivos en los que value_usd (número entero) es menor que un valor específico labels/contract.value_usd < 2000
Archivos en los que client_contact esté configurado en una dirección de correo electrónico específica labels/contract.client_contact = 'alex@altostrat.com'

3. Buscar en función de campos con campos de valores múltiples (como ListOptions.max_entries > 1)

Los campos que admiten varios valores solo se pueden consultar con el operador IN:

  • 'EMAIL_ADDRESS' IN labels/project.project_leads
  • NOT 'EMAIL_ADDRESS' IN labels/project.project_leads

Ejemplo

En este ejemplo, se describe cómo enumerar todos los archivos con una etiqueta o un valor de campo específicos de un recurso de archivo de Google Drive.

Si deseas que se incluya labelInfo en la respuesta, también debes especificar lo siguiente:

  • includeLabels como una lista separada por comas de labelId

  • labelInfo en el parámetro fields para indicar que deseas que se muestre labelInfo en la respuesta del archivo.

En este ejemplo, se usan uno o más labelId para consultar y mostrar archivos que coincidan con la información de etiqueta solicitada. También usa el método files.list.

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)");

Node.js

/**
* Search for Drive files with specific labels
* @return{obj} file list with labelInfo
**/
async function getFileWithSpecificLabels() {
  // 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;
  }
}