"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > मैं एसक्यूएलएक्स के साथ नेस्टेड स्ट्रक्चर्स को कुशलतापूर्वक कैसे स्कैन कर सकता हूं?

मैं एसक्यूएलएक्स के साथ नेस्टेड स्ट्रक्चर्स को कुशलतापूर्वक कैसे स्कैन कर सकता हूं?

2024-11-22 को प्रकाशित
ब्राउज़ करें:859

How Can I Efficiently Scan Nested Structs with sqlx?

sqlx के साथ नेस्टेड स्ट्रक्चर में स्कैन करना

नेस्टेड स्ट्रक्चर sqlx का उपयोग करते समय चुनौतियां पेश करते हैं। हालाँकि, दस्तावेज़ एम्बेडेड संरचनाओं के उपयोग के माध्यम से एक समाधान प्रदान करता है। एम्बेडेड विशेषताओं और विधियों के लिए।

कोड उदाहरण

निम्नलिखित कोड पर विचार करें, जहां पता एक एम्बेडेड संरचना नहीं है:

ग्राहक संरचना टाइप करें { आईडी int `json:"id" db:"id"` नाम स्ट्रिंग `json:"name" db:"name"` पता पता `json:"पता"` } पता संरचना टाइप करें { स्ट्रीट स्ट्रिंग `json:"स्ट्रीट" db:"स्ट्रीट"` सिटी स्ट्रिंग `json:"city" db:"city"` }ग्राहक संरचना में स्कैन करने का प्रयास करते समय इस कोड के परिणामस्वरूप एक त्रुटि होगी क्योंकि पता फ़ील्ड एम्बेडेड नहीं है और इसका अपना डीबी टैग नहीं है।

इसे हल करने के लिए, पता एम्बेड करें ग्राहक में:

type Customer struct {
       Id      int     `json:"id" db:"id"`
       Name    string  `json:"name" db:"name"`
       Address Address `json:"adress"`
}

type Address struct {
       Street string `json:"street" db:"street"`
       City   string `json:"city" db:"city"`
}

पता एम्बेड करके, इसके फ़ील्ड (टैग सहित) को ग्राहक में प्रचारित किया जाता है, जिससे sqlx उन्हें क्वेरी परिणाम से पॉप्युलेट कर सकता है।

JSON आउटपुट
type Customer struct {
   Id     int    `json:"id" db:"id"`
   Name   string `json:"name" db:"name"`
   Address
}

एंबेडिंग पता JSON आउटपुट को समतल कर देगा, जैसा कि नीचे देखा गया है:

{ "आईडी": 1, "नाम": "फू", "सड़क": "बार", "शहर": "बाज़" }इसे संबोधित करने के लिए, आप डीबी संरचना को अपने मूल प्रकार में रीमैप कर सकते हैं या क्वेरी परिणाम को मानचित्र में स्कैन कर सकते हैं।

नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3