Wygląda na to, że próbujesz dodać jakiś niestandardowy typ danych (w tym przypadku POJO), ale musisz pamiętać, że pola w dokumentach mogą akceptować tylko określone typy danych, a nie obiekty bezpośrednio .
Jeśli nie wiesz, Mongo Documents mają taką samą strukturę jak json. Musisz więc jawnie utworzyć dokumenty, tworząc pola i wstawiając do nich wartości. Istnieją określone typy danych, które są dozwolone w polach wartości:
http://mongodb.github.io/mongo-java-driver/3.0/bson/documents/
Aby pomóc w twojej sprawie, poniższy kod przyjmuje twoje POJO jako parametr i znając strukturę POJO, zwraca dokument Mongo, który można wstawić do twojej kolekcji:
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;
}
Powinno to działać w przypadku wstawiania. Jeśli chcesz zaindeksować jedno z pól:
database.getCollection("Records").createIndex(new Document("id", 1));
Mam nadzieję, że to odpowiada na Twoje pytanie i działa dla Ciebie.