sql >> Databáze >  >> NoSQL >> MongoDB

MongoDB Java Inserting Throws org.bson.codecs.configuration.CodecConfigurationException:Nelze najít kodek pro třídu io.github.ilkgunel.mongodb.Pojo

Podle vzhledu toho, co se snažíte udělat, se pokoušíte přidat nějaký vlastní datový typ (v tomto případě váš POJO), ale musíte mít na paměti, že pole v dokumentech mohou přijímat pouze určité datové typy, nikoli přímo objekty. .

V případě, že byste také nevěděli, Mongo Documents jsou strukturovány stejným způsobem jako json. Takže musíte explicitně vytvořit dokumenty vytvořením polí a vložením hodnot do nich. Existují specifické datové typy, které jsou povoleny v hodnotových polích:

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

Abychom vám pomohli s vaším případem, níže uvedený kód vezme vaše POJO jako parametr a se znalostí struktury POJO vrátí dokument Mongo, který lze vložit do vaší sbírky:

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

Při vkládání by to mělo fungovat. Pokud chcete indexovat jedno z polí:

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

Doufám, že to odpoví na vaši otázku a bude pro vás fungovat.



  1. Redis - Indexy s prošlou platností se nesmažou

  2. Získejte hodnotu z MongoDB podle názvu klíče

  3. Požadavky na prostor datové struktury Redis

  4. Připojení WebSocket k <URL> se nezdařilo:Chyba během navázání spojení WebSocket:Neočekávaný kód odpovědi:521