Esta página descreve como pesquisar arquivos com um valor de campo ou marcador específico aplicada.
Tipos de campo de marcador
Os campos de marcadores do Google Drive são fortemente tipados, com suporte a cada tipo indexação e semântica de pesquisa diferentes. A tabela a seguir mostra as tipos de dados.
Tipo | Opções de tipo de rótulo | Operadores de pesquisa compatíveis |
---|---|---|
Texto | TextOptions | is null, is not null, =, contains, starts with |
Texto longo | LongTextOptions | is null, is not null, contains |
Número inteiro | IntegerOptions | is null, is not null, =, !=, <, >, <=, >= |
Data | DateOptions | is null, is not null, =, !=, <, >, <=, >= |
Seleção | SelectionOptions | is null, is not null, =, != |
Usuário | UserOptions | is null, is not null, =, != |
Lista de seleção | SelectionOptions (com max_Entries > 1) | is null, is not null, in, not in |
Lista de usuários | UserOptions (com max_Entries > 1) | is null, is not null, in, not in |
Exemplos de pesquisa
1. Pesquisa com base na presença de um marcador ou campo
Você pode pesquisar itens em que um marcador específico foi (ou não) aplicado:
'labels/contract' in labels
not 'labels/contract' in labels
Você também pode pesquisar itens em que um campo específico tenha sido definido:
labels/contract.comment IS NOT NULL
labels/contract.comment IS NULL
2. Pesquisa com base em campos de valor único
Você pode escrever consultas de pesquisa que correspondam aos valores de campo esperados. A tabela a seguir mostra as consultas de campo válidas:
O que você quer consultar | String de consulta |
---|---|
Itens em que o comentário é definido como "hello" | labels/contract.comment = 'hello' |
Arquivos em que o comentário começa com "hello" | labels/contract.comment STARTS WITH 'hello' |
Arquivos em que o status é executado | labels/contract.status = 'executed' |
Arquivos em que o status não é executado | labels/contract.status != 'executed' |
Arquivos em que Execution_date é anterior a uma data específica | labels/contract.execution_date < '2020-06-22' |
Arquivos em que value_usd (número inteiro) é menor que um valor específico | labels/contract.value_usd < 2000 |
Arquivos em que client_contact está definido para um endereço de e-mail específico | labels/contract.client_contact = 'alex@altostrat.com' |
3. Pesquisa baseada em campos com vários valores (como ListOptions.max_Entries > 1)
Campos compatíveis com vários valores só podem ser consultados usando o operador IN:
'EMAIL_ADDRESS' IN labels/project.project_leads
NOT 'EMAIL_ADDRESS' IN labels/project.project_leads
Exemplo
O exemplo de código a seguir mostra como usar um ou mais labelId
para listar todos
arquivos com um marcador específico ou valor de campo de um arquivo do Drive
recurso. Ele também usa o
método files.list
. O corpo da solicitação deve
ficar em branco.
Se quiser incluir labelInfo
na resposta, também será necessário especificar:
includeLabels
como uma lista de IDs separada por vírgulas.labelInfo
no parâmetrofields
para indicar que você quer que olabelInfo
retornado dentro deincludeLabels
.
Se bem-sucedida, a resposta body contém a lista de arquivos.
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;
}
Substitua:
- LABEL_1_ID: os primeiros
labelId
de um rótulo a ser retornado. - LABEL_2_ID: o segundo
labelId
de um rótulo a ser retornado.