इस पेज पर, किसी खास लेबल या फ़ील्ड वैल्यू के साथ फ़ाइलें खोजने का तरीका बताया गया है.
लेबल फ़ील्ड के टाइप
Google Drive के लेबल फ़ील्ड को स्ट्रोंग टाइप किया जाता है. हर टाइप, इंडेक्स करने और खोज के अलग-अलग सेमेटिक्स के साथ काम करता है. नीचे दी गई टेबल में, उपलब्ध डेटा टाइप दिखाए गए हैं.
टाइप | लेबल टाइप के विकल्प | इस्तेमाल किए जा सकने वाले खोज ऑपरेटर |
---|---|---|
टेक्स्ट | TextOptions | is null, is not null, =, contains, starts with |
लंबा टेक्स्ट | LongTextOptions | is null, is not null, contains |
पूर्णांक | IntegerOptions | is null, is not null, =, !=, <, >, <=, >= |
तारीख | DateOptions | 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 |
उपयोगकर्ता सूची | UserOptions (max_entries > 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' |
ऐसी फ़ाइलें जिनमें टिप्पणी "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
उदाहरण
यहां दिए गए कोड सैंपल में, Drive के फ़ाइल रिसॉर्स से किसी खास लेबल या फ़ील्ड वैल्यू वाली सभी फ़ाइलों की सूची बनाने के लिए, एक या एक से ज़्यादा labelId
का इस्तेमाल करने का तरीका बताया गया है. यह files.list
तरीके का भी इस्तेमाल करता है. अनुरोध का मुख्य हिस्सा खाली होना चाहिए.
अगर आपको जवाब में labelInfo
शामिल करना है, तो आपको यह भी बताना होगा:
includeLabels
कॉमा लगाकर अलग किए गए आईडी की सूची के तौर पर.fields
पैरामीटर मेंlabelInfo
डालें, ताकि यह पता चल सके कि आपकोlabelInfo
कोincludeLabels
में दिखाना है.
अगर फ़ाइलें अपलोड हो जाती हैं, तो response body में फ़ाइलों की सूची शामिल होती है.
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;
}
इनकी जगह ये डालें:
- LABEL_1_ID: लौटाए जाने वाले लेबल का पहला
labelId
. - LABEL_2_ID: लौटाए जाने वाले प्रॉडक्ट के लेबल का दूसरा
labelId
.