MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

Làm thế nào để chuyển đổi bson sang json một cách hiệu quả với mongo-go-driver?

Nếu bạn biết cấu trúc nếu BSON của mình, bạn có thể tạo một kiểu tùy chỉnh triển khai json.Marshalerjson.Unmarshaler và xử lý NaN như bạn muốn. Ví dụ:

type maybeNaN struct{
    isNan  bool
    number float64
}

func (n maybeNaN) MarshalJSON() ([]byte, error) {
    if n.isNan {
        return []byte("null"), nil // Or whatever you want here
    }
    return json.Marshal(n.number)
}

func (n *maybeNan) UnmarshalJSON(p []byte) error {
    if string(p) == "NaN" {
        n.isNan = true
        return nil
    }
    return json.Unmarshal(p, &n.number)
}

type myStruct struct {
    someNumber maybeNaN `json:"someNumber" bson:"someNumber"`
    /* ... */
}

Nếu bạn có cấu trúc tùy ý của BSON, lựa chọn duy nhất của bạn là duyệt qua cấu trúc, sử dụng phản xạ và chuyển đổi bất kỳ lần xuất hiện nào của NaN thành một loại (có thể là một loại tùy chỉnh như được mô tả ở trên)




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Mongodb $ push trong mảng lồng nhau

  2. Tải dữ liệu lên Meteor / Mongo DB

  3. Có thể truy vấn phạm vi băm của một khóa được lập chỉ mục được băm trong mongodb không?

  4. Tùy chọn cấu hình --bindip trong mongodb làm gì?

  5. Truy vấn danh sách có trong danh sách khác trong mongodb