2016-03-31 8 views
10

में डेटा स्टोर करने का सबसे अच्छा तरीका मैं बोल्ट डीबी और गोलांग के लिए नया हूं, और आपकी मदद लेने की कोशिश कर रहा हूं।बोल्ट डीबी

तो, मैं समझता हूं कि मैं केवल बोल्ट सरणी ([] बाइट) को बोल्ट डीबी की कुंजी और मूल्य के लिए सहेज सकता हूं। यदि मेरे पास नीचे की उपयोगकर्ता की संरचना है, और कुंजी उपयोगकर्ता नाम होगा, तो डेटा को बोल्ट डीबी में स्टोर करने का सबसे अच्छा विकल्प क्या होगा जहां यह बाइट्स की सरणी की अपेक्षा करता है?

इसे या JSON Serializing? या बेहतर तरीका?

type User struct { 
    name string 
    age int 
    location string 
    password string 
    address string 
} 

बहुत बहुत शुक्रिया, एक अच्छा शाम

+1

[अच्छा BoltDB उदाहरण json या खखार एन्कोडिंग का उपयोग] (https://bl.ocks.org/joyrexus/22c3ef0984ed957f54b9) – Mark

उत्तर

12

हाँ, मैं JSON के User struct प्रमुखता की सलाह देते हैं और फिर एक अद्वितीय कुंजी []byte टुकड़ा का उपयोग होता है। यह मत भूलना कि JSON के लिए मार्शलिंग में केवल निर्यात किए गए संरचना फ़ील्ड शामिल हैं, इसलिए आपको नीचे दिखाए गए अनुसार अपनी संरचना को बदलना होगा।

एक और उदाहरण के लिए, BoltDB GitHub page देखें।

type User struct { 
    Name string 
    Age int 
    Location string 
    Password string 
    Address string 
} 

func (user *User) save(db *bolt.DB) error { 
    // Store the user model in the user bucket using the username as the key. 
    err := db.Update(func(tx *bolt.Tx) error { 
     b, err := tx.CreateBucketIfNotExists(usersBucket) 
     if err != nil { 
      return err 
     }  

     encoded, err := json.Marshal(user) 
     if err != nil { 
      return err 
     } 
     return b.Put([]byte(user.Name), encoded) 
    }) 
    return err 
} 
+0

आप आपकी मदद के लिए धन्यवाद! बहुत उपयोगी! – Gon

+6

आप प्रोटोकॉल बफर जैसे अन्य धारावाहिक प्रारूपों को भी देखना चाह सकते हैं जो कि मार्शल/अनमशाल के लिए काफी तेज़ हो सकते हैं और वर्जनिंग जैसी सुविधाएं प्रदान कर सकते हैं। –

संबंधित मुद्दे