java - 根据 mongo db 中的字符串列表过滤字符串
问题描述
尝试使用针对字符串列表的字符串字段过滤集合。
public List<Case> getCases(List<String> doctorIds) {
Query query = new Query();
query.addCriteria(Criteria.where("primaryDoctorId").in(doctorIds));
return mongoTemplate.find(query, Case.class);
}
过滤mongo类
public class Case {
private String primaryDoctorId;
public String getPrimaryDoctorId() {
return primaryDoctorId;
}
public void setPrimaryDoctorId(String primaryDoctorId) {
this.primaryDoctorId = primaryDoctorId;
}
}
但这并没有按预期工作,即使有符合此标准的记录。
解决方案
您可以尝试使用BasicDBObject和BasicDBList构建查询过滤器
public List < Case > getCases(List < String > doctorIds) {
BasicDBList docIds = new BasicDBList();
docIds.addAll(doctorIds);
DBObject inClause = new BasicDBObject("$in", docIds);
DBObject query = new BasicDBObject("primaryDoctorId", inClause);
MongoCursor < Document > cursor = collection.find(query).iterator();
try {
while (cursor.hasNext()) {
System.out.println(cursor.next().toJson());
}
} finally {
cursor.close();
}
}
推荐阅读
- c# - 如何将 SQL Server 日期转换为 C# DateTime
- javascript - Javascript递归函数不适用于排列数据
- c# - DotNetBrowser 未在 Chrome 上相应地呈现打印
- git - Git:使用cherry-pick将标签从一个分支复制到另一个分支
- elasticsearch - Kibana 中的 SQL “Distinct” 等价物是什么?
- git - git merge/rebase/cherrypick 跳过 master 上的提交
- c - coreFlightSystem 的自定义应用程序:“无法加载 cFE 应用程序”
- amazon-web-services - AWS 负载均衡器日志从 s3 到弹性搜索
- ios - 执行任何 gem 命令时出现错误无法加载此类文件 - rubygems/core_ext/kernel_warn (LoadError)
- c++ - 如何修复 C++ 中的“预期”错误