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

कस्टम बीएसओएन मार्शलिंग को संभालना

कस्टम बीसन मार्शलिंग/अनमर्शलिंग लगभग उसी तरह काम करता है, आपको क्रमशः गेट्टर और सेटर इंटरफेस को लागू करना होगा

कुछ इस तरह काम करना चाहिए:

type Currency struct {
    value        decimal.Decimal //The actual value of the currency.
    currencyCode string          //The ISO currency code.
}

// GetBSON implements bson.Getter.
func (c Currency) GetBSON() (interface{}, error) {
    f := c.Value().Float64()
    return struct {
        Value        float64 `json:"value" bson:"value"`
        CurrencyCode string  `json:"currencyCode" bson:"currencyCode"`
    }{
        Value:        f,
        CurrencyCode: c.currencyCode,
    }, nil
}

// SetBSON implements bson.Setter.
func (c *Currency) SetBSON(raw bson.Raw) error {

    decoded := new(struct {
        Value        float64 `json:"value" bson:"value"`
        CurrencyCode string  `json:"currencyCode" bson:"currencyCode"`
    })

    bsonErr := raw.Unmarshal(decoded)

    if bsonErr == nil {
        c.value = decimal.NewFromFloat(decoded.Value)
        c.currencyCode = decoded.CurrencyCode
        return nil
    } else {
        return bsonErr
    }
}



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB के लिए परिनियोजन पैटर्न की तुलना करना

  2. MongoDB में एक विशिष्ट नाम के साथ एक इंडेक्स कैसे बनाएं?

  3. MongoDB में डुप्लिकेट रिकॉर्ड खोजें

  4. मोंगोडब - मोंगो और मोंगोड डेटाबेस चलाने के बीच अंतर

  5. मोंगोइड:आईडी के सरणी के माध्यम से खोजें