sql >> Database teknologi >  >> NoSQL >> MongoDB

MongoDB Java Inserting Throws org.bson.codecs.configuration.CodecConfigurationException:Kan ikke finde et codec til klassen io.github.ilkgunel.mongodb.Pojo

Ud fra udseendet af, hvad du prøver at gøre, forsøger du at tilføje en brugerdefineret datatype (i dette tilfælde din POJO), men hvad du skal huske på er, at felter i dokumenter kun kan acceptere bestemte datatyper, ikke objekter direkte .

Hvis du ikke også vidste det, er Mongo-dokumenter struktureret på samme måde som json. Så du skal udtrykkeligt oprette dokumenterne ved at oprette felterne og indsætte værdierne i dem. Der er specifikke datatyper, der er tilladt i værdifelter:

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

For at hjælpe med din sag, tager koden nedenfor din POJO som en parameter, og ved at kende strukturen af ​​POJO returnerer du et Mongo-dokument, der kan indsættes i din samling:

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

Dette burde virke til indsættelse. Hvis du vil indeksere et af felterne:

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

Jeg håber, at dette besvarer dit spørgsmål og virker for dig.



  1. 3 måder at vælge rækken med den maksimale værdi i SQL

  2. mongodb få _id som streng i find-forespørgsel

  3. Giver Mongoose adgang til tidligere værdi af ejendom i pre('save')?

  4. Redis databaser på en udviklermaskine med flere projekter