如何使用 Java 只从匹配特定过滤器的 MongoDB 文档中获取

凯卡·布朗

我的 MongoDB 文档是这样的:

"_id":"C\Users...\1.html"{
"data": Object[
        gambia:1
        estonia:1
        ...etc
        ]
}

不知道我写的结构是否正确,所以给你一张图:

在此处输入图片说明

我的问题是我想从数据库中获取与给定的特定单词匹配的所有文档。例如,如果用户输入“汽车”,我需要其数据中包含汽车一词的所有文档。但我找不到怎么做。

我尝试了什么?我试图获取与“冈比亚”一词匹配的第一个文档,我知道它存在于第一个文档中:

    MongoClient mongoClient = MongoClients.create();
    MongoDatabase database = mongoClient.getDatabase("motor");

    MongoCollection<Document> collection = database.getCollection("dictionary");
    String word = "gambia";
    Document myDoc = collection.find(Filters.eq("data", word)).first();
    System.out.println(myDoc);

但是我得到了一个空指针异常。

帕普拉斯

您可以使用 mongodb 函数来实现这一点$exists

这个函数告诉你一个确定的字段是否在你的集合中。

例如:

MongoCollection<Document> collection = database.getCollection("dictionary");

String word = "gambia";

DBObject query = new BasicDBObject("data." + word, new BasicDBObject(
            "$exists", true));

Document myDoc = collection.find(query);
System.out.println(myDoc);

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何使用 Java 驱动程序在 MongoDB 中获取嵌入文档数组的特定值

如何使用Java在mongodb中仅获取文档的objectId

如何在 MongoDB 中使用数组嵌套过滤器获取特定字段值?

MongoDB Java驱动程序使用$ in过滤器创建文档

如何在MongoDB中基于日期过滤器(周,月和自定义日期)获取文档?

在MongoDB中使用文档属性过滤器获取嵌入数组的扁平文档数组

如何使用Java中的过滤器输出基于HTML文档的二进制文档

MongoDB文档中的过滤器数组

如何从嵌套数组 mongodb 中获取单个匹配的文档?

如何在Java中添加到现有的MongoDB Bson过滤器

MongoDB使用过滤器获取N个最新文档

使用mongoDB中的汇总查询以获取特定的子文档?

如何从Elasticsearch中的过滤器获取所有文档?

Mongodb 使用过滤器查找文档

如何使用Java在MongoDB中获取小于或大于某些值的文档

如何从 C# 计算 mongodb 中带有过滤器的文档

MongoDb使用过滤器匹配列表

使用过滤器和选项在PHP MongoDB中查询文档的数组字段

如何过滤 MongoDB 中的文档,然后获取一个忽略重复项的文档?

使用 MongoDb Java 驱动程序有没有办法动态获取过滤器功能

如何从mongodb获取匹配的子文档?

如何从mongodb获取Geowithin匹配的子文档?

从mongodb中的文档获取匹配的数组元素

如何在mongodb中的文档中获取数组字段中的特定数据?

如何在Java中使用ObjectID更新MongoDB中的文档

如何使用Spring Data Java在MongoDB中更新嵌套文档

如何使用Java在MongoDB 3.3中通过_id删除文档

如何使用Java在MongoDB中执行文档的批量更新

使用自定义过滤器从多个表中获取Mongodb数据