MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Fügen Sie DBObject mit Spring Data in MongoDB ein

Sie verwechseln Federdaten mit normaler Mongo-Persistenz mit dem Java-Treiber.

Wenn Sie Daten mithilfe des Java-Treibers direkt in MongoDB speichern möchten, verwenden Sie das BasicDBObject, wie Sie es gezeigt haben, außer dass Sie nicht die mongoTemaplate-Klasse zum Speichern verwenden, sondern die MongoClient-Klasse. Das würde also so aussehen:

MongoClient mongoClient = new MongoClient( "localhost" , 27017 );
DB db = mongoClient.getDB( "mydb" );
BasicDBObject o = new BasicDBObject();
o.set......
coll.insert(o);

Wenn Sie jedoch versuchen, ein Dokument mit Spring-Data zu speichern, müssen Sie eine Java-Klasse erstellen, um Ihr Dokument darzustellen (z. B.:Person), diese Klasse mit @Document(collection="person") kommentieren und dann das mongoTemplate verwenden (Dies ist eine spring-data-spezifische Klasse, um diese Entität beizubehalten. Dies ist der Verwendung von JPA/hibernate sehr ähnlich.

Es würde also in etwa so aussehen

@Document(collection="person")
public class Person {
    private String fisrtName;
    ....

    Relevant getters and setters

}

Und dann die Beharrlichkeit

Person p = new Person();
p.setFirstName("foo");
p.setLastName("bar");
....
mongoTemplate.save(p);