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

Json.NET deserializing Mongo ObjectId đưa ra kết quả sai

Bạn đang triển khai ReadJson phương pháp của bộ chuyển đổi không chính xác. existingValue tham số không cung cấp cho bạn giá trị được giải mã hóa được đọc từ JSON, nó cung cấp cho bạn giá trị hiện có của đối tượng mà bạn sẽ thay thế . Trong hầu hết các trường hợp, điều này sẽ là rỗng hoặc trống. Những gì bạn cần làm là sử dụng reader để nhận giá trị từ JSON, hãy chuyển đổi nó nếu cần, sau đó trả lại giá trị đã chuyển đổi.

Giả sử ObjectId của bạn lớp có một hàm tạo chấp nhận một chuỗi hex, đây là cách bạn triển khai ReadJson phương pháp:

public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
{
    JToken token = JToken.Load(reader);
    return new ObjectId(token.ToObject<string>());
}



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB và Docker thông qua lỗi xác thực do docker-soạn và không phát sinh db

  2. Cách máy chủ chính ngừng hoạt động sẽ được xử lý tự động trong bản sao mongodb

  3. Node - Mongoose 3.6 - Sắp xếp truy vấn với trường phổ biến

  4. Cách trả về nhiều giá trị bằng Go Mongo Distinction

  5. không thể truy cập các thuộc tính của req.user