একটি নির্দিষ্ট লেবেল বা ক্ষেত্রের মান সহ ফাইলগুলির জন্য অনুসন্ধান করুন৷

এই পৃষ্ঠায় বর্ণনা করা হয়েছে কীভাবে একটি নির্দিষ্ট লেবেল বা ফিল্ড ভ্যালু প্রয়োগ করা ফাইলগুলি অনুসন্ধান করতে হয়।

লেবেল ক্ষেত্রের প্রকারগুলি

গুগল ড্রাইভের লেবেল ফিল্ডগুলো স্ট্রংলি টাইপড, যেখানে প্রতিটি টাইপ ভিন্ন ভিন্ন ইন্ডেক্সিং এবং সার্চ সেম্যান্টিকস সমর্থন করে। নিচের সারণিতে উপলব্ধ ডেটা টাইপগুলো দেখানো হয়েছে।

প্রকার লেবেল প্রকারের বিকল্পগুলি সমর্থিত অনুসন্ধান অপারেটর
পাঠ্য টেক্সট অপশন is null, is not null, =, contains, starts with
পূর্ণসংখ্যা পূর্ণসংখ্যা বিকল্প is null, is not null, =, !=, <, >, <=, >=
তারিখ তারিখের বিকল্প is null, is not null, =, !=, <, >, <=, >=
নির্বাচন নির্বাচনের বিকল্প is null, is not null, =, !=
ব্যবহারকারী ব্যবহারকারীর বিকল্প is null, is not null, =, !=
নির্বাচন তালিকা নির্বাচনের বিকল্পসমূহ (যেখানে সর্বোচ্চ এন্ট্রি সংখ্যা ১-এর বেশি) is null, is not null, in, not in
ব্যবহারকারী তালিকা ব্যবহারকারীর বিকল্পসমূহ (যেখানে সর্বোচ্চ এন্ট্রি সংখ্যা ১-এর বেশি) is null, is not null, in, not in

১. কোনো লেবেল বা ফিল্ডের উপস্থিতির ভিত্তিতে অনুসন্ধান করুন

আপনি এমন জিনিসপত্র খুঁজতে পারেন যেগুলিতে একটি নির্দিষ্ট লেবেল লাগানো হয়েছে (বা হয়নি):

  • 'labels/contract' in labels
  • not 'labels/contract' in labels

এছাড়াও আপনি সেইসব আইটেম অনুসন্ধান করতে পারেন যেখানে একটি নির্দিষ্ট ফিল্ড সেট করা হয়েছে (বা হয়নি):

  • labels/contract.comment IS NOT NULL
  • labels/contract.comment IS NULL

২. একক-মানের ফিল্ডের উপর ভিত্তি করে অনুসন্ধান করুন

আপনি প্রত্যাশিত ফিল্ড ভ্যালুগুলোর সাথে মেলানোর জন্য সার্চ কোয়েরি লিখতে পারেন। নিচের সারণিতে বৈধ ফিল্ড কোয়েরিগুলো দেখানো হলো:

আপনি যা জিজ্ঞাসা করতে চান কোয়েরি স্ট্রিং
যেসব আইটেমের মন্তব্য 'হ্যালো' হিসেবে সেট করা আছে labels/contract.comment = 'hello'
যে ফাইলগুলিতে মন্তব্য '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'

৩. একাধিক মানবিশিষ্ট ফিল্ডের উপর ভিত্তি করে অনুসন্ধান করুন (যেমন ListOptions.max_entries > 1)

যেসব ফিল্ড একাধিক মান সমর্থন করে, সেগুলো শুধুমাত্র IN অপারেটর ব্যবহার করে কোয়েরি করা যায়:

  • ' EMAIL_ADDRESS ' IN labels/project.project_leads
  • NOT ' EMAIL_ADDRESS ' IN labels/project.project_leads

উদাহরণ

নিম্নলিখিত কোড নমুনাটি দেখায় কিভাবে একটি ড্রাইভ ফাইল রিসোর্স থেকে একটি নির্দিষ্ট লেবেল বা ফিল্ড মান সহ সমস্ত ফাইল তালিকাভুক্ত করতে এক বা একাধিক labelId ব্যবহার করতে হয়। এটি files.list পদ্ধতিটিও ব্যবহার করে। অনুরোধের বডি অবশ্যই খালি হতে হবে।

যদি আপনি রেসপন্সে labelInfo অন্তর্ভুক্ত করতে চান, তাহলে আপনাকে অবশ্যই নিম্নলিখিত বিষয়গুলোও উল্লেখ করতে হবে:

  • includeLabels আইডিগুলোর একটি কমা-দ্বারা-বিভক্ত তালিকা হিসেবে অন্তর্ভুক্ত করুন।

  • includeLabels মধ্যে ` labelInfo ফেরত পেতে চাইলে fields প্যারামিটারে labelInfo করুন।

সফল হলে, রেসপন্স বডিতে ফাইলগুলোর তালিকা থাকে।

জাভা

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();

নোড.জেএস

/**
* 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