Sử dụng bộ sưu tập để sắp xếp ngăn nắp các trang
Lưu và phân loại nội dung dựa trên lựa chọn ưu tiên của bạn.
Trang này mô tả cách tìm kiếm tệp có một nhãn hoặc giá trị trường cụ thể được áp dụng.
Các loại trường nhãn
Các trường nhãn của Google Drive được nhập mạnh mẽ với mỗi loại hỗ trợ ngữ nghĩa tìm kiếm và lập chỉ mục khác nhau. Bảng sau đây cho biết các kiểu dữ liệu hiện có.
Loại
Các lựa chọn về loại nhãn
Các toán tử tìm kiếm được hỗ trợ
Văn bản
TextOptions
is null, is not null, =, contains, starts with
Văn bản dài
LongTextOptions
is null, is not null, contains
Số nguyên
IntegerOptions
is null, is not null, =, !=, <, >, <=, >=
Ngày
DateOptions
is null, is not null, =, !=, <, >, <=, >=
Lựa chọn
SelectionOptions
is null, is not null, =, !=
Người dùng
UserOptions
is null, is not null, =, !=
Danh sách lựa chọn
SelectionOptions (với max_entries > 1)
is null, is not null, in, not in
DS Người dùng
UserOptions (với max_entries > 1)
is null, is not null, in, not in
Ví dụ tìm kiếm
1. Tìm kiếm dựa trên sự hiện diện của nhãn hoặc trường
Bạn có thể tìm kiếm những mục đã (hoặc chưa) được áp dụng một nhãn cụ thể:
'labels/contract' in labels
not 'labels/contract' in labels
Bạn cũng có thể tìm kiếm những mục mà một trường cụ thể đã (hoặc chưa) được đặt:
labels/contract.comment IS NOT NULL
labels/contract.comment IS NULL
2. Tìm kiếm dựa trên các trường có một giá trị
Bạn có thể viết cụm từ tìm kiếm để so khớp các giá trị trường dự kiến. Bảng sau đây cho thấy các truy vấn hợp lệ về trường:
Nội dung bạn muốn truy vấn
Chuỗi truy vấn
Các mục có bình luận được đặt thành "hello"
labels/contract.comment = 'hello'
Các tệp có bình luận bắt đầu bằng "xin chào"
labels/contract.comment STARTS WITH 'hello'
Tệp có trạng thái đã thực thi
labels/contract.status = 'executed'
Tệp có trạng thái chưa được thực thi
labels/contract.status != 'executed'
Các tệp có execution_date trước một ngày cụ thể
labels/contract.execution_date < '2020-06-22'
Tệp có value_usd (số nguyên) nhỏ hơn một giá trị cụ thể
labels/contract.value_usd < 2000
Các tệp có client_contact được đặt thành một địa chỉ email cụ thể
3. Tìm kiếm dựa trên các trường có trường nhiều giá trị (chẳng hạn như ListOptions.max_entries > 1)
Bạn chỉ có thể truy vấn các trường hỗ trợ nhiều giá trị bằng toán tử IN:
'EMAIL_ADDRESS' IN labels/project.project_leads
NOT 'EMAIL_ADDRESS' IN labels/project.project_leads
Ví dụ:
Đoạn mã sau đây cho biết cách sử dụng một hoặc nhiều labelId để liệt kê tất cả các tệp có nhãn hoặc giá trị trường cụ thể từ tài nguyên tệp trên Drive. Phương thức này cũng sử dụng phương thức files.list. Nội dung yêu cầu phải trống.
Nếu muốn thêm labelInfo vào phản hồi, bạn cũng phải chỉ định:
includeLabels
dưới dạng danh sách mã nhận dạng được phân tách bằng dấu phẩy.
labelInfo trong tham số fields để biểu thị rằng bạn muốn labelInfo được trả về trong 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();
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**/asyncfunctionsearchForFileWithLabels(){// Get credentials and build service// TODO (developer) - Use appropriate auth mechanism for your appconst{GoogleAuth}=require('google-auth-library');const{google}=require('googleapis');constauth=newGoogleAuth({scopes:'https://www.googleapis.com/auth/drive'});constservice=google.drive({version:'v3',auth});try{constfileList=awaitservice.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)',});returnfile;}catch(err){// TODO (developer) - Handle errorthrowerr;}
[null,null,["Cập nhật lần gần đây nhất: 2025-08-29 UTC."],[],[],null,["# Search for files with a specific label or field value\n\nThis page describes how to search for files with a specific label or field value\napplied.\n\nLabel field types\n-----------------\n\nGoogle Drive label fields are strongly typed with each type supporting\ndifferent indexing and search semantics. The following table shows the available\ndata types.\n\n| Type | Label type options | Supported search operators |\n|----------------|------------------------------------------|--------------------------------------------------|\n| Text | TextOptions | `is null, is not null, =, contains, starts with` |\n| Long Text | LongTextOptions | `is null, is not null, contains` |\n| Integer | IntegerOptions | `is null, is not null, =, !=, \u003c, \u003e, \u003c=, \u003e=` |\n| Date | DateOptions | `is null, is not null, =, !=, \u003c, \u003e, \u003c=, \u003e=` |\n| Selection | SelectionOptions | `is null, is not null, =, !=` |\n| User | UserOptions | `is null, is not null, =, !=` |\n| Selection List | SelectionOptions (with max_entries \\\u003e 1) | `is null, is not null, in, not in` |\n| User List | UserOptions (with max_entries \\\u003e 1) | `is null, is not null, in, not in` |\n\n### Search examples\n\n| **Note:** In the examples below, readable strings are used for clarity. Actual resource names and field IDs must be used instead. For example, `labels/contract.execution_date` might look something like this: `labels/837d7f5de85137b86e52.491d`.\n\n**1. Search based on the presence of a label or field**\n\nYou can search for items where a specific label has (or has not) been applied:\n\n- `'labels/contract' in labels`\n- `not 'labels/contract' in labels`\n\nYou can also search for items where a specific field has (or has not) been set:\n\n- `labels/contract.comment IS NOT NULL`\n- `labels/contract.comment IS NULL`\n\n| **Note:** Searching for files without any fields set returns items that the label has not been applied to. You can combine the queries above to find items where the label is applied, but doesn't contain a value for a specific field: `'labels/contract' in labels AND labels/contract.comment IS NULL`.\n\n**2. Search based on single-valued fields**\n\nYou can write search queries to match expected field values. The following table\nshows the valid field queries:\n\n| What you want to query | Query string |\n|---------------------------------------------------------------|---------------------------------------------------------|\n| Items where comment is set to \"hello\" | `labels/contract.comment = 'hello'` |\n| Files where comment starts with \"hello\" | `labels/contract.comment STARTS WITH 'hello'` |\n| Files where status is executed | `labels/contract.status = 'executed'` |\n| Files where status is not executed | `labels/contract.status != 'executed'` |\n| Files where execution_date is before a specific date | `labels/contract.execution_date \u003c '2020-06-22'` |\n| Files where value_usd (integer) is less than a specific value | `labels/contract.value_usd \u003c 2000` |\n| Files where client_contact is set to a specific email address | `labels/contract.client_contact = 'alex@altostrat.com'` |\n\n**3. Search based on fields with multivalued fields (such as\nListOptions.max_entries \\\u003e 1)**\n\nFields that support multiple values can only be queried using the IN operator:\n\n- `'`\u003cvar translate=\"no\"\u003eEMAIL_ADDRESS\u003c/var\u003e`' IN labels/project.project_leads`\n- `NOT '`\u003cvar translate=\"no\"\u003eEMAIL_ADDRESS\u003c/var\u003e`' IN labels/project.project_leads`\n\nExample\n-------\n\nThe following code sample shows how to use one or more `labelId` to list all\nfiles with a specific label or field value from a Drive [file\nresource](/workspace/drive/labels/reference/rest/v2/labels). It also uses the\n[`files.list`](/workspace/drive/api/v2/reference/files/list) method. The request body must\nbe empty.\n\nIf you want to include `labelInfo` in the response, you also must specify:\n\n- [`includeLabels`](/workspace/drive/api/reference/rest/v2/files/get#query-parameters)\n as a comma-separated list of IDs.\n\n- `labelInfo` in the `fields` parameter to denote that you want the\n `labelInfo` returned within `includeLabels`.\n\nIf successful, the [response\nbody](/workspace/drive/api/reference/rest/v3/files/list#response-body) contains the list\nof files. \n\n### Java\n\n List\u003cFile\u003e fileList = driveService.files().list().setIncludeLabels(\"\u003cvar translate=\"no\"\u003eLABEL_1_ID\u003c/var\u003e,\u003cvar translate=\"no\"\u003eLABEL_2_ID\u003c/var\u003e\").setFields(\"items(labelInfo, id)\").setQ(\"'labels/\u003cvar translate=\"no\"\u003eLABEL_1_ID\u003c/var\u003e' in labels and 'labels/\u003cvar translate=\"no\"\u003eLABEL_2_ID\u003c/var\u003e' in labels\").execute().getItems();\n\n### Python\n\n file_list = drive_service.files().list(includeLabels=\"\u003cvar translate=\"no\"\u003eLABEL_1_ID\u003c/var\u003e,\u003cvar translate=\"no\"\u003eLABEL_2_ID\u003c/var\u003e\", q=\"'labels/\u003cvar translate=\"no\"\u003eLABEL_1_ID\u003c/var\u003e' in labels and 'labels/\u003cvar translate=\"no\"\u003eLABEL_2_ID\u003c/var\u003e' in labels\", fields=\"items(labelInfo, id)\").execute();\n\n### Node.js\n\n /**\n * Search for Drive files with specific labels\n * @return{obj} file list with labelInfo\n **/\n async function searchForFileWithLabels() {\n // Get credentials and build service\n // TODO (developer) - Use appropriate auth mechanism for your app\n\n const {GoogleAuth} = require('google-auth-library');\n const {google} = require('googleapis');\n\n const auth = new GoogleAuth({scopes: 'https://www.googleapis.com/auth/drive'});\n const service = google.drive({version: 'v3', auth});\n try {\n const fileList = await service.files.list({\n includeLabels: '\u003cvar translate=\"no\"\u003eLABEL_1_ID\u003c/var\u003e,\u003cvar translate=\"no\"\u003eLABEL_2_ID\u003c/var\u003e',\n q: '\\'labels/\u003cvar translate=\"no\"\u003eLABEL_1_ID\u003c/var\u003e\\' in labels and \\'labels/\u003cvar translate=\"no\"\u003eLABEL_2_ID\u003c/var\u003e\\' in labels',\n fields:'files(labelInfo, id)',\n });\n return file;\n } catch (err) {\n // TODO (developer) - Handle error\n throw err;\n }\n\nReplace the following:\n\n- \u003cvar translate=\"no\"\u003eLABEL_1_ID\u003c/var\u003e: The first `labelId` of a label to return.\n- \u003cvar translate=\"no\"\u003eLABEL_2_ID\u003c/var\u003e: The second `labelId` of a label to return."]]