MongoClient
のインスタンスを作成する方法はいくつかあります。 、SpringBootアプリケーション内での構成と使用。
(1)Javaベースのメタデータを使用したMongoインスタンスの登録:
@Configuration
public class AppConfig {
public @Bean MongoClient mongoClient() {
return MongoClients.create();
}
}
CommandLineRunner
からの使用法 のrun
メソッド(すべての例は同様に実行されます ):
@Autowired
MongoClient mongoClient;
// Retrieves a document from the "test1" collection and "test" database.
// Note the MongoDB Java Driver API methods are used here.
private void getDocument() {
MongoDatabase database = client.getDatabase("test");
MongoCollection<Document> collection = database.getCollection("test1");
Document myDoc = collection.find().first();
System.out.println(myDoc.toJson());
}
(2)AbstractMongoClientConfigurationクラスを使用して構成し、MongoOperationsで使用します:
@Configuration
public class MongoClientConfiguration extends AbstractMongoClientConfiguration {
@Override
public MongoClient mongoClient() {
return MongoClients.create();
}
@Override
protected String getDatabaseName() {
return "newDB";
}
}
データベース名(newDB
)を設定できることに注意してください )に接続できます。この構成は、Spring Data MongoDB APIを使用してMongoDBデータベースを操作するために使用されます:MongoOperations
(およびその実装MongoTemplate
)およびMongoRepository
。
@Autowired
MongoOperations mongoOps;
// Connects to "newDB" database, and gets a count of all documents in the "test2" collection.
// Uses the MongoOperations interface methods.
private void getCollectionSize() {
Query query = new Query();
long n = mongoOps.count(query, "test2");
System.out.println("Collection size: " + n);
}
(3)AbstractMongoClientConfigurationクラスを使用して構成し、MongoRepositoryで使用します
同じ構成を使用するMongoClientConfiguration
クラス(上記のトピック2 )、ただし、さらに@EnableMongoRepositories
で注釈を付けます 。この場合、MongoRepository
を使用します コレクションデータをJavaオブジェクトとして取得するためのインターフェイスメソッド。
リポジトリ:
@Repository
public interface MyRepository extends MongoRepository<Test3, String> {
}
Test3.java
test3
を表すPOJOクラス コレクションのドキュメント:
public class Test3 {
private String id;
private String fld;
public Test3() {
}
// Getter and setter methods for the two fields
// Override 'toString' method
...
}
ドキュメントを取得してJavaオブジェクトとして印刷するには、次のメソッドを使用します。
@Autowired
MyRepository repository;
// Method to get all the `test3` collection documents as Java objects.
private void getCollectionObjects() {
List<Test3> list = repository.findAll();
list.forEach(System.out::println);
}