MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

MongoDB Java Inserting Throws org.bson.codecs.configuration.CodecConfigurationException :Impossible de trouver un codec pour la classe io.github.ilkgunel.mongodb.Pojo

D'après ce que vous essayez de faire, vous essayez d'ajouter un type de données personnalisé (dans ce cas, votre POJO), mais ce que vous devez garder à l'esprit, c'est que les champs des documents ne peuvent accepter que certains types de données, pas des objets directement .

Au cas où vous ne le sauriez pas aussi, les documents Mongo sont structurés de la même manière que json. Vous devez donc créer explicitement les documents en créant les champs et en y insérant les valeurs. Certains types de données spécifiques sont autorisés dans les champs de valeur :

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

Pour vous aider dans votre cas, le code ci-dessous prend votre POJO en paramètre et connaissant la structure du POJO, renvoie un document Mongo qui peut être inséré dans votre collection :

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;
} 

Cela devrait fonctionner pour l'insertion. Si vous souhaitez indexer un des champs :

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

J'espère que cela répond à votre question et fonctionne pour vous.