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

时间:2019-04-29 13:16:53

标签: java mongodb

我的MongoDB文档如下:

BeanUtils.copyProperty(obj, "fieldName", value);

我不知道我是否正确编写了结构,所以这里有一张图片:

enter image description here

我的问题是我想从数据库中获取与给定单词匹配的所有文档。例如,如果用户输入“ car”,我需要其数据中所有带有单词car的文档。但是我找不到方法。

我尝试过什么?我试图获得第一个与“ gambia”一词匹配的文档,直到我知道它存在于第一个文档中:

setlocal enabledelayedexpansion
set /a _index=1

for /f "tokens=1* delims==" %%a in (param.txt) do (
    set "_key!_index!=%%b"
    set /a _index+=1
)
set _
pause

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

1 个答案:

答案 0 :(得分:1)

您可以使用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);