MongoDB
 sql >> डेटाबेस >  >> NoSQL >> MongoDB

पिक<> टाइपस्क्रिप्ट के साथ दायर नेस्टेड का उपयोग कैसे करें

map समारोह सरणियों के लिए है, इसलिए मैं आपके products को मान लूंगा आपके उदाहरण में कुंजी एक सरणी है और कोई वस्तु नहीं है।

सबसे पहले, मेरा सुझाव है कि यदि आपने पहले से नहीं किया है तो आप अपने उत्पादों की प्रतिक्रिया के लिए टाइप परिभाषाएं ठीक से लिखें

interface IProduct {
  _id: string,
  category: number,
  gender: number,
  title: string,
  description: string,
  price: number,
  imageFileName: string,
  createdAt: string,
  updatedAt: string,
  __v: number
}

interface IResponse {
  _id: string;
  products: IProduct[];
}

फिर, Pick . पाने के लिए एक ही product . पर काम करना ऑब्जेक्ट, आप IResponse . को अनुक्रमित कर सकते हैं अनुक्रमित पहुंच प्रकार का उपयोग करके इंटरफ़ेस . आप productचाहते हैं index . पर संपत्ति क्योंकि यह एक सरणी है।

/*

Indexed Access Types

type Person = { age: number, name: string }[];
type Age = Person[number]["age"];

*/

type Products = ReadonlyArray<
  Pick<
    IResponse["products"][number],
    "_id" | "gender" | "title" | "description" | "price" | "imageFileName"
  >
>;

अगर आपको Pick<IResponse["products"], '_id'...> जैसा कुछ करना हो तो आप Pick . का उपयोग करने का प्रयास कर रहे होंगे एक सरणी से गुण निकालने के लिए, जिसके परिणामस्वरूप एक त्रुटि होगी।

और केवल एक चीज बची है वह है प्रतिक्रिया से वांछित वस्तु आकार में उत्पादों को मैप करना।


// Query your products

const { products }: IResponse = {
  _id: "611e2febb863ce74ac448220",
  products: [
    {
      _id: "6116a9ecc3e98d500c5e523d",
      category: 5,
      gender: 1,
      title: 'sivdosi',
      description: 'oisbdvoi',
      price: 2394,
      imageFileName: 'http://localhost:3000/images/1628875244435-3564.png',
      createdAt: "2021-08-13T17:20:44.472Z",
      updatedAt: "2021-08-13T17:20:44.472Z",
      __v: 0
    }
  ]
}

// Get the desired object

const pickedProducts: Products = products.map(({ _id, gender, title, description, price, imageFileName }) => ({
  _id,
  gender,
  title,
  description,
  price,
  imageFileName
}));

अंतिम परिणाम कुछ इस तरह दिखता है

interface IProduct {
  _id: string,
  category: number,
  gender: number,
  title: string,
  description: string,
  price: number,
  imageFileName: string,
  createdAt: string,
  updatedAt: string,
  __v: number
}

interface IResponse {
  _id: string;
  products: IProduct[];
}

type Products = ReadonlyArray<
  Pick<
    IResponse["products"][number],
    "_id" | "gender" | "title" | "description" | "price" | "imageFileName"
  >
>;

// Query your products

const { products }: IResponse = {
  _id: "611e2febb863ce74ac448220",
  products: [
    {
      _id: "6116a9ecc3e98d500c5e523d",
      category: 5,
      gender: 1,
      title: 'sivdosi',
      description: 'oisbdvoi',
      price: 2394,
      imageFileName: 'http://localhost:3000/images/1628875244435-3564.png',
      createdAt: "2021-08-13T17:20:44.472Z",
      updatedAt: "2021-08-13T17:20:44.472Z",
      __v: 0
    }
  ]
}

// Get the desired object

const pickedProducts: Products = products.map(({ _id, gender, title, description, price, imageFileName }) => ({
  _id,
  gender,
  title,
  description,
  price,
  imageFileName
}));



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB एकत्रीकरण के अंदर फ़ील्ड का प्रकार बदलें और क्या $lookup फ़ील्ड पर अनुक्रमणिका का उपयोग करता है या नहीं?

  2. टेम्पलेट में उपयोग के लिए MongoDB से HTML प्राप्त करना

  3. MongoDB डेटा निर्देशिका / डेटा / डीबी नहीं मिला

  4. मोंगो लिपि में फाइल लिखने का संचालन?

  5. एक नेवला दस्तावेज़ के अंदर एक सरणी को क्वेरी करना