连接至 MongoDB
Java Reactive Streams驾驶员是 Reactive Streams API的一个实施,它由三个组件组成:
Publisher
Subscriber
Subscription
Publisher
是无限数量的有序元素的提供商,根据从其Subscriber
或Subscriber
的多个实例收到的需求进行发布。 Subscription
表示订阅Publisher
的Subscriber
的一对一生命周期。
提示
To 学习;了解 more about reactive streams, visit the Reactive Streams documentation.
在本教程中,您必须实现Java Reactive Streams Subscribers
来查询数据库。 本指南使用 Reactor 库(一个基于响应式流规范的库)中的方法来实现Java响应式流Subscribers
。
要学习;了解有关 Reactor 库的更多信息,请参阅 入门 在 Project Reactor 文档中。
1
创建Java Reactive Streams驾驶员应用程序
您必须使用集成开发环境 (IDE) 中的项目来完成以下步骤。 在您的项目中,在Java
包中创建一个名为QueryDatabase
的新Java文件。 将以下代码复制并粘贴到QueryDatabase
文件:
import com.mongodb.*; import com.mongodb.reactivestreams.client.MongoCollection; import org.bson.Document; import reactor.core.publisher.Mono; import com.mongodb.reactivestreams.client.MongoClient; import com.mongodb.reactivestreams.client.MongoClients; import com.mongodb.reactivestreams.client.MongoDatabase; import static com.mongodb.client.model.Filters.eq; public class QueryDatabase { public static void main(String[] args) { // Replace the placeholder with your Atlas connection string String uri = "<connection string>"; // Construct a ServerApi instance using the ServerApi.builder() method ServerApi serverApi = ServerApi.builder() .version(ServerApiVersion.V1) .build(); MongoClientSettings settings = MongoClientSettings.builder() .applyConnectionString(new ConnectionString(uri)) .serverApi(serverApi) .build(); // Create a new client and connect to the server try (MongoClient mongoClient = MongoClients.create(settings)) { MongoDatabase database = mongoClient.getDatabase("sample_mflix"); MongoCollection<Document> movies = database.getCollection("movies"); Mono.from(movies.find(eq("title", "Back to the Future"))) .doOnSuccess(i -> System.out.println(i)) .doOnError(err -> System.out.println("Error: " + err.getMessage())) .block(); } } }
2
指定连接字符串
将 占位符替换为您从本指南的 string<connection string>
创建连接 中复制的连接字符串。string
完成这些步骤后,您就拥有了一个正常运行的应用程序,它使用驾驶员连接到MongoDB 部署、查询数据库并打印结果。
注意
如果您在该步骤中遇到问题,请在 MongoDB 社区论坛中寻求帮助,或使用本页右侧或右下角的 Rate this page(本页内容评级)标签页提交反馈。