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

发布时间:2022-07-04 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了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'
  • 一种按评级降序组织匹配文档的排序,因此如果我们的查询匹配多个文档,则返回的文档是具有最高评级的文档。
  • 包含 字段中的对象使用辅助方法排除该字段 投影titleimdb_idexcludeid()
笔记

此示例使用连接字符串连接到 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 分钟的影。
  • 一个排序,组织中(“A”前“Z”)的标题降序排列返回的文档。
  • 包含 字段中的对象使用辅助方法排除该字段 投影titleimdb_idexcludeId()
笔记

此示例使用连接字符串连接到 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, 请参阅我们的常见问题解答页面 以了解您需要对此代码示例进行哪些更改。

 

脚本宝典总结

以上是脚本宝典为你收集整理的MongoDB Java 驱动程序 v4.3 查找文档全部内容,希望文章能够帮你解决MongoDB Java 驱动程序 v4.3 查找文档所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。