ERR_INVALID_SIGNED_EXCHANGE ошибка в Google Chrome

С точки зрения того, что вы пытаетесь сделать, вы пытаетесь добавить какой-то пользовательский тип данных (в данном случае ваш POJO), но то, что вам нужно иметь в виду, это то, что поля в документах могут принимать только определенные типы данных, а не объекты.

Если вы еще не знали, Mongo Documents структурированы так же, как json. Таким образом, вы должны эксплицитно создавать документы, создавая поля и вставляя в них значения. Существуют определенные типы данных, которые разрешены в полях значений:

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

Чтобы помочь в вашем случае, приведенный ниже код берет POJO в качестве параметра и зная структуру POJO, возвращает Mongo Document, который можно вставить в вашу коллекцию:

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

Это должно работать для вставки. Если вы хотите проиндексировать одно из полей:

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

Я надеюсь, что это ответит на ваш вопрос и будет работать для вас.

1
задан Croll 5 April 2019 в 18:37
поделиться