در این صفحه نحوه جستجوی فایلهایی با برچسب یا مقدار فیلد خاص توضیح داده شده است.
انواع فیلد برچسب
فیلدهای برچسب 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
یک برچسب برای بازگشت.
در این صفحه نحوه جستجوی فایلهایی با برچسب یا مقدار فیلد خاص توضیح داده شده است.
انواع فیلد برچسب
فیلدهای برچسب 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
یک برچسب برای بازگشت.