कोई खास लेबल या फ़ील्ड वैल्यू वाली फ़ाइलें खोजें

इस पेज पर, किसी खास लेबल या फ़ील्ड वैल्यू के साथ फ़ाइलें खोजने का तरीका बताया गया है.

लेबल फ़ील्ड के टाइप

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'
ऐसी फ़ाइलें जिनमें टिप्पणी की शुरुआत "हैलो" से होती है labels/contract.comment STARTS WITH 'hello'
ऐसी फ़ाइलें जिनमें स्टेटस लागू किया जाता है labels/contract.status = 'executed'
ऐसी फ़ाइलें जिनमें स्थिति लागू नहीं की गई है labels/contract.status != 'executed'
ऐसी फ़ाइलें जिनमें बचत की तारीख, किसी खास तारीख से पहले की है 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.