- Thiết lập cơ bản
• Chọn Google Drive Node trong workflow
• Chọn resource File/Folder
• Chọn operation Search - Query Parameters (Tham số truy vấn)
Query (q):
• Nhập chuỗi truy vấn theo cú pháp Google Drive API:
Cú pháp chi tiết của advanced search trong Google Drive API
Cú pháp truy vấn nâng cao (advanced search) trong Google Drive API sử dụng trường q
với cấu trúc:
<query_term> <operator> <value>
Trong đó:
- query_term: trường dữ liệu cần tìm kiếm (ví dụ:
name
,mimeType
,modifiedTime
,parents
, …) - operator: toán tử so sánh (
=
,!=
,<
,>
,<=
,>=
,contains
,in
,has
,and
,or
,not
) - value: giá trị so sánh, luôn đặt trong dấu nháy đơn
'...'
với chuỗi hoặc ID[1].
Các toán tử phổ biến
Toán tử | Ý nghĩa | Ví dụ sử dụng |
---|---|---|
= | Bằng | name = 'Báo cáo' |
!= | Khác | mimeType != 'application/pdf' |
< , > , <= , >= | So sánh với kiểu ngày hoặc số | modifiedTime > '2024-01-01T00:00:00' |
contains | Chứa (chỉ kiểm tra tiền tố với name ) | name contains 'Báo' |
in | Thuộc về một tập hợp (thường dùng với parents , owners , …) | 'abc123' in parents |
and , or | Kết hợp nhiều điều kiện | name contains 'Báo' and trashed = false |
not | Phủ định điều kiện | not trashed |
has | Có thuộc tính (dùng với custom properties) | properties has { key='project' and value='n8n' } [1] |
Các trường truy vấn thường dùng
Trường | Ý nghĩa | Toán tử hợp lệ | Ví dụ sử dụng |
---|---|---|---|
name | Tên file/folder | contains , = , != | name contains 'report' |
fullText | Nội dung, mô tả, metadata | contains | fullText contains 'invoice' |
mimeType | Loại file (MIME) | = , != , contains | mimeType = 'application/pdf' |
modifiedTime | Thời gian sửa đổi cuối | < , > , = , … | modifiedTime > '2024-01-01T00:00:00' |
trashed | Đã xóa hay chưa | = , != | trashed = false |
parents | Nằm trong thư mục cha nào | in | 'folderId' in parents |
starred | Đánh dấu sao | = , != | starred = true |
owners | Người sở hữu | in | '[email protected]' in owners |
createdTime | Thời gian tạo | < , > , = , … | createdTime <= '2024-05-01T00:00:00' |
sharedWithMe | File được chia sẻ với tôi | = , != | sharedWithMe = true |
Quy tắc đặc biệt
- Giá trị chuỗi phải đặt trong dấu nháy đơn
'...'
. Nếu có dấu nháy đơn trong chuỗi, dùng\'
để escape:name = 'Valentine\'s Day'
. contains
vớiname
chỉ kiểm tra tiền tố, ví dụ:name contains 'Hello'
sẽ tìm “HelloWorld” nhưngname contains 'World'
thì không.- Có thể dùng dấu ngoặc đơn
()
để nhóm điều kiện phức tạp.
Ví dụ truy vấn nâng cao
1. Tìm tất cả file PDF chưa bị xóa:
mimeType = 'application/pdf' and trashed = false
2. Tìm tất cả folder trong một thư mục cụ thể:
mimeType = 'application/vnd.google-apps.folder' and 'folderId' in parents
3. Tìm file có tên bắt đầu bằng “Báo cáo” và được chỉnh sửa sau ngày 1/5/2024:
name contains 'Báo cáo' and modifiedTime > '2024-05-01T00:00:00'
4. Tìm file Google Docs trong một thư mục cụ thể:
'folderId' in parents and mimeType = 'application/vnd.google-apps.document'
5. Tìm file được chia sẻ với tôi, không nằm trong thùng rác:
sharedWithMe = true and trashed = false
6. Tìm file có custom property:
properties has { key='project' and value='n8n' }
7. Tìm file tên có chứa “report” nhưng không chứa “draft”:
name contains 'report' and not name contains 'draft'
8. Tìm file theo nhiều điều kiện phức tạp:
(name contains 'Báo cáo' or name contains 'Report') and trashed = false and (mimeType = 'application/pdf' or mimeType = 'application/vnd.google-apps.document')
Lưu ý khi sử dụng trong n8n
- Khi cấu hình Advanced Search trong n8n Google Drive node, nhập chuỗi truy vấn vào trường Query String đúng cú pháp như trên[5].
- Có thể kết hợp nhiều điều kiện để lọc chính xác theo nhu cầu.
- Tham khảo thêm danh sách MIME types của Google Drive để lọc đúng loại file mong muốn.
Các tùy chọn khác
- Pagination (Phân trang)
• Page Size: Số lượng kết quả trả về mỗi trang (mặc định 100)
• Return All: Tự động lấy tất cả trang kết quả Options (Tùy chọn bổ sung)
• Drive ID: Tìm trong Shared Drive cụ thể
• Include Team Drive Items: Cho phép tìm trong Shared Drives
• Supports All Drives: Kích hoạt hỗ trợ Shared Drives- Xử lý kết quả
• Kết quả trả về dưới dạng JSON array
• Sử dụng nodes tiếp theo như Set hoặc Function để xử lý dữ liệu
• Đối với tên file có ký tự đặc biệt: Sử dụng dấu\
để escape (ví dụ:name contains 'quận\\1'
)