脚本宝典收集整理的这篇文章主要介绍了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
集合中查找单个文档。它使用以下对象和方法:
find()
方法。该eq
过滤器只匹配电影的标题文本完全匹配 'The Room'
。title
imdb
_id
excludeid()
此示例使用连接字符串连接到 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
集合中的查询匹配的所有文档。它使用以下对象和方法:
find()
方法。该lt()
过滤器仅匹配运行时间少于 15 分钟的电影。title
imdb
_id
excludeId()
此示例使用连接字符串连接到 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(); } } } }
以上是脚本宝典为你收集整理的MongoDB Java 驱动程序 v4.3 查找文档全部内容,希望文章能够帮你解决MongoDB Java 驱动程序 v4.3 查找文档所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。