Вие обърквате spring-data с нормалното постоянство на mongo, използвайки java драйвера.
Ако искате да запазите данните в mongoDB директно с помощта на драйвера на Java, тогава ще използвате BasicDBObject, както показахте, с изключение на това, че няма да използвате класа mongoTemaplate за запазване, а по-скоро класа MongoClient. Така че ще изглежда така:
MongoClient mongoClient = new MongoClient( "localhost" , 27017 );
DB db = mongoClient.getDB( "mydb" );
BasicDBObject o = new BasicDBObject();
o.set......
coll.insert(o);
Но ако се опитвате да запазите документ с помощта на spring-data, тогава трябва да създадете Java клас, който да представлява вашия документ (напр.:Person) и да анотирате този клас с @Document(collection="person") и след това да използвате mongoTemplate (което е специфичен за пролетните данни клас за запазване на този обект. Това е много подобно на използването на JPA/hibernate.
Така че ще изглежда нещо подобно
@Document(collection="person")
public class Person {
private String fisrtName;
....
Relevant getters and setters
}
И след това постоянството
Person p = new Person();
p.setFirstName("foo");
p.setLastName("bar");
....
mongoTemplate.save(p);