sql >> Databasteknik >  >> NoSQL >> MongoDB

MongoDB Java Inserting Throws org.bson.codecs.configuration.CodecConfigurationException:Kan inte hitta en codec för klassen io.github.ilkgunel.mongodb.Pojo

Utifrån utseendet på vad du försöker göra, försöker du lägga till någon anpassad datatyp (i det här fallet din POJO) men vad du behöver tänka på är att fält i dokument bara kan acceptera vissa datatyper, inte objekt direkt .

Om du inte också visste det, är Mongo-dokument strukturerade på samma sätt som json. Så du måste explicit skapa dokumenten genom att skapa fälten och infoga värdena i dem. Det finns specifika datatyper som är tillåtna i värdefält:

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

För att hjälpa dig med ditt ärende tar koden nedan din POJO som en parameter och genom att känna till strukturen för POJO returneras ett Mongo-dokument som kan infogas 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;
} 

Detta borde fungera för insättning. Om du vill indexera ett av fälten:

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

Jag hoppas att detta svarar på din fråga och fungerar för dig.



  1. förbund på samma samling i mongodb

  2. Hur frågar jag efter dokument med _id-fältet i Java mongodb-drivrutinen?

  3. Node.js multi-server kluster:hur man delar objekt i flera nodkluster

  4. MongoDB $abs