MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

A inserção de Java do MongoDB lança org.bson.codecs.configuration.CodecConfigurationException:não é possível encontrar um codec para a classe io.github.ilkgunel.mongodb.Pojo


Pela aparência do que você está tentando fazer, você está tentando adicionar algum tipo de dados personalizado (neste caso, seu POJO), mas o que você precisa ter em mente é que os campos em documentos só podem aceitar determinados tipos de dados, não objetos diretamente .

Caso você também não saiba, os Documentos do Mongo são estruturados da mesma forma que o json. Então você tem que criar explicitamente os documentos criando os campos e inserindo os valores neles. Existem tipos de dados específicos que são permitidos em campos de valor:

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

Para ajudar no seu caso, o código abaixo pega seu POJO como parâmetro e conhecendo a estrutura do POJO, retorna um Documento Mongo que pode ser inserido em sua coleção:
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;
} 

Isso deve funcionar para inserção. Se você deseja indexar um dos campos:
database.getCollection("Records").createIndex(new Document("id", 1));

Espero que isso responda sua pergunta e funcione para você.