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

L'inserimento di MongoDB Java genera org.bson.codecs.configuration.CodecConfigurationException:impossibile trovare un codec per la classe io.github.ilkgunel.mongodb.Pojo

Dall'aspetto di ciò che stai cercando di fare, stai cercando di aggiungere un tipo di dati personalizzato (in questo caso il tuo POJO) ma quello che devi tenere a mente è che i campi nei documenti possono accettare solo determinati tipi di dati, non oggetti direttamente .

Nel caso in cui non lo sapessi, Mongo Documents è strutturato allo stesso modo di json. Quindi devi creare i documenti in modo esplicito creando i campi e inserendo i valori in essi. Esistono tipi di dati specifici consentiti nei campi valore:

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

Per aiutarti con il tuo caso, il codice seguente prende il tuo POJO come parametro e conoscendo la struttura del POJO, restituisce un documento Mongo che può essere inserito nella tua raccolta:

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

Questo dovrebbe funzionare per l'inserimento. Se vuoi indicizzare uno dei campi:

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

Spero che questo risponda alla tua domanda e funzioni per te.