sql >> Database >  >> NoSQL >> MongoDB

MongoDB Java invoegen Throws org.bson.codecs.configuration.CodecConfigurationException:kan geen codec vinden voor klasse io.github.ilkgunel.mongodb.Pojo

Zoals u ziet, probeert u een aangepast gegevenstype toe te voegen (in dit geval uw POJO), maar u moet er rekening mee houden dat velden in documenten alleen bepaalde gegevenstypen kunnen accepteren, geen objecten rechtstreeks .

Voor het geval je het nog niet wist, Mongo-documenten zijn op dezelfde manier gestructureerd als json. U moet de documenten dus expliciet maken door de velden aan te maken en de waarden erin in te voegen. Er zijn specifieke gegevenstypen die zijn toegestaan ​​in waardevelden:

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

Om u te helpen met uw zaak, neemt de onderstaande code uw POJO als parameter en als u de structuur van de POJO kent, wordt een Mongo-document geretourneerd dat in uw verzameling kan worden ingevoegd:

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

Dit zou moeten werken voor het invoegen. Als u een van de velden wilt indexeren:

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

Ik hoop dat dit uw vraag beantwoordt en voor u werkt.



  1. Websocket verbroken Verbinding maken mislukt

  2. MongoDB installeren met Homebrew

  3. Vraag Mongodb op maand, dag, jaar... van een datetime

  4. MongoDB pull-array-element uit een verzameling