数据库
首页 > 数据库> > MongoDB Java 驱动程序 v4.3 查找文档

MongoDB Java 驱动程序 v4.3 查找文档

作者:互联网

官网地址:https://docs.mongodb.com/drivers/java/sync/current/usage-examples/findOne/

 

查找文档

您可以通过将对象上的 find() 和 first() 方法链接在一起来检索集合中的单个文档 MongoCollection。您可以将查询过滤器传递给find()方法以查询并返回与集合中的过滤器匹配的文档。如果不包含过滤器,MongoDB 将返回集合中的所有文档。该 first()方法返回第一个匹配的文档。

有关使用 Java 驱动程序查询 MongoDB 的更多信息,请参阅我们的 查询文档指南

您还可以将其他方法链接到该find()方法,例如按sort()指定顺序组织匹配的文档,以及 projection()配置返回文档中包含的字段。

有关该sort()方法的更多信息,请参阅我们的 Sorting 指南。有关该projection()方法的更多信息,请参阅我们的 投影指南

find()方法返回 的实例FindIterable,该类提供多种方法来访问、组织和遍历结果。 FindIterable还从其父类继承方法, MongoIterable例如first().

first()方法返回检索结果中的第一个文档,或者null如果没有结果。

以下代码段从movies集合中查找单个文档。它使用以下对象和方法:

笔记

此示例使用连接字符串连接到 MongoDB 实例。要了解有关连接到 MongoDB 实例的更多信息,请参阅 连接指南

package usage.examples;
import static com.mongodb.client.model.Filters.eq; import org.bson.Document; import org.bson.conversions.Bson; import com.mongodb.client.MongoClient; import com.mongodb.client.MongoClients; import com.mongodb.client.MongoCollection; import com.mongodb.client.MongoDatabase; import com.mongodb.client.model.Projections; import com.mongodb.client.model.Sorts;
public class FindOne { public static void main( String[] args ) { // Replace the uri string with your MongoDB deployment's connection string String uri = "<connection string uri>"; try (MongoClient mongoClient = MongoClients.create(uri)) { MongoDatabase database = mongoClient.getDatabase("sample_mflix"); MongoCollection<Document> collection = database.getCollection("movies"); Bson projectionFields = Projections.fields( Projections.include("title", "imdb"), Projections.excludeId()); Document doc = collection.find(eq("title", "The Room")) .projection(projectionFields) .sort(Sorts.descending("imdb.rating")) .first(); if (doc == null) { System.out.println("No results found."); } else { System.out.println(doc.toJson()); } } } }

 

查找多个文档

您可以通过调用对象find() 上的方法来查询集合中的多个文档MongoCollection。将查询过滤器传递给 find()方法以查询并返回与集合中的过滤器匹配的文档。如果不包含过滤器,MongoDB 将返回集合中的所有文档。

有关使用 Java 驱动程序查询 MongoDB 的更多信息,请参阅我们的 查询文档指南

您还可以将find()方法链接到方法,例如按sort()指定顺序组织匹配的文档以及 projection()配置返回文档中包含的字段。

有关该sort()方法的更多信息,请参阅我们的 Sorting 指南。有关该projection()方法的更多信息,请参阅我们的 投影指南

find()方法返回 的实例FindIterable,该类提供多种方法来访问、组织和遍历结果。 FindIterable还从其父类继承方法,该类 MongoIterable实现了核心 Java 接口Iterable

您可以调用 上的iterator()方法,该方法MongoIterable返回MongoCursor可用于遍历结果的实例。您可以调用MongoCursor诸如此类的方法hasNext()来检查是否存在其他结果,或next()返回集合中的下一个文档。如果没有文档与查询匹配,则调用hasNext() 返回false并因此调用next()引发异常。

如果next()在迭代器返回最终结果之后或在没有结果存在时调用迭代器,它会抛出类型为 的异常 java.util.NoSuchElementException。始终用于hasNext()在调用之前检查是否存在其他结果next()

以下代码段查找并打印与movies集合中的查询匹配的所有文档。它使用以下对象和方法:

笔记

此示例使用连接字符串连接到 MongoDB 实例。要了解有关连接到 MongoDB 实例的更多信息,请参阅 连接指南

package usage.examples;
import static com.mongodb.client.model.Filters.lt; import org.bson.Document; import org.bson.conversions.Bson; import com.mongodb.client.MongoClient; import com.mongodb.client.MongoClients; import com.mongodb.client.MongoCollection; import com.mongodb.client.MongoCursor; import com.mongodb.client.MongoDatabase; import com.mongodb.client.model.Projections; import com.mongodb.client.model.Sorts;
public class Find { public static void main( String[] args ) { // Replace the uri string with your MongoDB deployment's connection string String uri = "<connection string uri>"; try (MongoClient mongoClient = MongoClients.create(uri)) { MongoDatabase database = mongoClient.getDatabase("sample_mflix"); MongoCollection<Document> collection = database.getCollection("movies"); Bson projectionFields = Projections.fields( Projections.include("title", "imdb"), Projections.excludeId()); MongoCursor<Document> cursor = collection.find(lt("runtime", 15)) .projection(projectionFields) .sort(Sorts.descending("title")).iterator(); try { while(cursor.hasNext()) { System.out.println(cursor.next().toJson()); } } finally { cursor.close(); } } } }

 

提示 传统 API

如果您使用的是旧 API, 请参阅我们的常见问题解答页面 以了解您需要对此代码示例进行哪些更改。

 

标签:方法,Java,驱动程序,mongodb,client,v4.3,文档,import,com
来源: https://www.cnblogs.com/cnwcl/p/15359925.html