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

Hủy đăng ký MongoDB BSON

Đối với những người quan tâm, tôi đã tìm thấy giải pháp cho vấn đề của mình. Hóa ra là định dạng BSON có thể được phân tích cú pháp giống như JSON bằng cách sử dụng trình điều khiển GSON của Google. Một phần khó khăn mà tôi phải giải quyết là tìm cách lưu trữ các trường lồng nhau trong lớp mẫu của tôi. Cách để cho phép GSON phân tích cú pháp các tài liệu lồng nhau là khai báo các lớp tĩnh bên trong trong lớp mẫu của bạn. Đây là một ví dụ:

public BSONObject {
   // Private fields
   private int foo;
   private String bar;

  // Constructors
  public BSONObject() {}

  // Static inner subclasses
  private Widget widget;
  private Duck quack;

  // Getters & Setters for outer class
  public int getFoo() {...}
  public String getBar() {...}
  public Widget getWidget() {...}
  public Duck getDuck() {...}

  // Static inner class declarations
  public static Widget {
     // include vars & getters/setters
  }

vv

Khai báo lớp mẫu theo khuôn khổ trên cho phép tôi dễ dàng phân tích cú pháp định dạng của MongoDB bằng cách sử dụng một vài dòng mã từ thư viện GSON. Xin lưu ý rằng tôi đã nối "\ n" vào mỗi mục nhập khi trả lại dữ liệu từ dịch vụ web của tôi để tách từng tài liệu trong phản hồi BSON của Mongo:

public String getNestedField() {
   Gson gson = new Gson();
   String [] split = response.split("\n");
   JsonParser p = new JsonParser();
   String json = split[0];
   BSONObject b = gson.fromJson(p.parse(json), BSONObject.class);
   return b.getWidget().getField();
}



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Tại sao trường đa giá trị là một ý tưởng tồi trong cơ sở dữ liệu quan hệ

  2. Mongoose - truy vấn để lấy dữ liệu từ nhiều bộ sưu tập

  3. Lưu trữ Enums dưới dạng chuỗi trong MongoDB

  4. Tìm tài liệu trống trong cơ sở dữ liệu

  5. Cách biểu diễn một mảng với các kiểu hỗn hợp