فایل هایی با برچسب یا مقدار فیلد خاص را جستجو کنید

در این صفحه نحوه جستجوی فایل‌هایی با برچسب یا مقدار فیلد خاص توضیح داده شده است.

انواع فیلد برچسب

فیلدهای برچسب Google Drive به شدت تایپ می شوند و هر نوع از فهرست بندی و معنای جستجوی متفاوتی پشتیبانی می کند. جدول زیر انواع داده های موجود را نشان می دهد.

تایپ کنید گزینه های نوع برچسب پشتیبانی از اپراتورهای جستجو
متن TextOptions is null, is not null, =, contains, starts with
متن طولانی LongTextOptions is null, is not null, contains
عدد صحیح IntegerOptions is null, is not null, =, !=, <, >, <=, >=
تاریخ گزینه های تاریخ is null, is not null, =, !=, <, >, <=, >=
انتخاب SelectionOptions is null, is not null, =, !=
کاربر UserOptions is null, is not null, =, !=
لیست انتخاب SelectionOptions (با max_entries > 1) is null, is not null, in, not in
فهرست کاربران گزینه های کاربر (با حداکثر ورودی > 1) is null, is not null, in, not in

1. جستجو بر اساس وجود یک برچسب یا فیلد

می توانید مواردی را جستجو کنید که برچسب خاصی در آنها اعمال شده است (یا نشده است):

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

همچنین می توانید مواردی را جستجو کنید که فیلد خاصی تنظیم شده است (یا نشده است):

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

2. جستجو بر اساس فیلدهای تک ارزشی

می توانید عبارت های جستجو را برای مطابقت با مقادیر فیلد مورد انتظار بنویسید. جدول زیر پرس و جوهای فیلد معتبر را نشان می دهد:

چیزی که می خواهید پرس و جو کنید رشته پرس و جو
مواردی که نظر روی "سلام" تنظیم شده است labels/contract.comment = 'hello'
فایل هایی که نظر با "سلام" شروع می شود labels/contract.comment STARTS WITH 'hello'
فایل هایی که وضعیت در آنها اجرا می شود labels/contract.status = 'executed'
فایل هایی که وضعیت در آنها اجرا نمی شود labels/contract.status != 'executed'
فایل هایی که execution_date قبل از تاریخ خاصی است labels/contract.execution_date < '2020-06-22'
فایل هایی که value_usd (عدد صحیح) کمتر از یک مقدار خاص است labels/contract.value_usd < 2000
فایل هایی که در آنها client_contact روی یک آدرس ایمیل خاص تنظیم شده است labels/contract.client_contact = 'alex@altostrat.com'

3. جستجو بر اساس فیلدهای دارای فیلدهای چند ارزشی (مانند ListOptions.max_entries > 1)

فیلدهایی که چندین مقدار را پشتیبانی می کنند فقط با استفاده از عملگر IN قابل جستجو هستند:

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

مثال

نمونه کد زیر نحوه استفاده از یک یا چند labelId برای فهرست کردن همه فایل‌ها با برچسب یا مقدار فیلد خاص از منبع فایل Drive نشان می‌دهد. همچنین از روش files.list استفاده می کند. بدنه درخواست باید خالی باشد.

اگر می‌خواهید labelInfo در پاسخ اضافه کنید، باید مشخص کنید:

  • includeLabels به عنوان لیست شناسه های جدا شده با کاما.

  • labelInfo در پارامتر fields برای نشان دادن اینکه می خواهید labelInfo در داخل includeLabels برگردانده شود.

در صورت موفقیت آمیز بودن، بدنه پاسخ حاوی لیستی از فایل ها است.

جاوا

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

پایتون

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;
  }

موارد زیر را جایگزین کنید:

  • LABEL_1_ID : اولین labelId یک برچسب برای بازگشت.
  • LABEL_2_ID : دومین labelId یک برچسب برای بازگشت.