我正在尝试用mongo+java编写$in
查询。$regex
它也不能在 mongo shell 中工作。我的意思是我没有得到任何结果,但也没有查询解析错误。这是我在我说的那一行从 Java Debugger 得到的最后一个查询collection.find(finalQuery)
{"$and": [
{"$or": [
{"country": "united states"}
]},
{"businesses": {
"$in": [
{"$regex": "^.*cardinal.*health.*$"},
{"$regex": "^.*the.*hartford.*$"}
]
}}
]}
上述查询的 Java 代码片段:
Set<Pattern> businesses = new HashSet<Pattern>();
for(String st: srchTerms) {
businesses.add(Pattern.compile("^"+st.trim()+"$"));
}
srchTermQuery.append("businesses", new BasicDBObject("$in", businesses));
但是,以下查询在 mongo shell 中有效,但我不知道如何将其写入 java:
{"registering_organization": {
"$in": [
/^.*cardinal.*health.*$/,
/^.*the.*hartford.*$/
]
}}
如果我们尝试将其定义为字符串,Java 代码会在正则表达式周围添加双引号。