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

MongoDB Java Inserting Throws org.bson.codecs.configuration.CodecConfigurationException:Không thể tìm thấy codec cho lớp io.github.ilkgunel.mongodb.Pojo

Từ giao diện của những gì bạn đang cố gắng thực hiện, bạn đang cố gắng thêm một số kiểu dữ liệu tùy chỉnh (trong trường hợp này là POJO của bạn) nhưng điều bạn cần lưu ý là các trường trong tài liệu chỉ có thể chấp nhận một số kiểu dữ liệu nhất định, không phải đối tượng trực tiếp. .

Trong trường hợp nếu bạn không biết, thì Tài liệu Mongo được cấu trúc theo cách tương tự như json. Vì vậy, bạn phải tạo tài liệu một cách rõ ràng bằng cách tạo các trường và chèn các giá trị vào chúng. Có những kiểu dữ liệu cụ thể được phép trong các trường giá trị:

http://mongodb.github.io/mongo-java-driver/3.0/bson/documents/

Để giải quyết trường hợp của bạn, đoạn mã bên dưới lấy POJO của bạn làm tham số và biết cấu trúc của POJO, trả về Tài liệu Mongo có thể được chèn vào bộ sưu tập của bạn:

private Document pojoToDoc(Pojo pojo){
    Document doc = new Document();

    doc.put("Name",pojo.getName());
    doc.put("Surname",pojo.getSurname());
    doc.put("id",pojo.getId());

    return doc;
} 

Điều này sẽ hoạt động để chèn. Nếu bạn muốn lập chỉ mục một trong các trường:

database.getCollection("Records").createIndex(new Document("id", 1));

Tôi hy vọng điều này trả lời câu hỏi của bạn và phù hợp với bạn.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Xếp tầng tùy chỉnh trong dữ liệu mùa xuân MongoDB

  2. MongoDB:Hiệu suất giảm bản đồ khủng khiếp

  3. Cách xóa N số tài liệu trong mongodb

  4. Làm thế nào để tính toán tổng số đang chạy bằng cách sử dụng tổng hợp?

  5. Hàm Mongo Find () sẽ không loại trừ _id