关于 spring-data_mongdb 不能用集合查询的解决办法
遇到问题描述:数据库采用mondb,有需求:直接采用集合中查询(类似于在MySql中的 in操作,但是后来发现不能用)
重点内容
List list=new ArrayList();
(query.addCriteria(Criteria.where(“indicator”).in(list)));
重点内容
此处代码 采用 api中的 办法是报错的。本人菜鸟 始终没找到问题。
解决办法:
private static DBCollection coll;
public String findChName(String param, String type) {
String result = "";
coll = getDBCollectionByName("indicator");// 获取集合的名字
String[] params = param.split(",");
DBObject queryCondition = new BasicDBObject();
BasicDBList values = new BasicDBList();
for (int i = 0; i < params.length; i++) {
ObjectId ob1 = new ObjectId(params[i]);
values.add(ob1);
}
// 查询条件添加
queryCondition.put("_id", new BasicDBObject("$in", values));
// 查询结果
DBCursor dbCursor = coll.find(queryCondition);
// 循环游标得到指标的id
// if (dbCursor != null && dbCursor.count() > 0) {
while (dbCursor.hasNext()) {
DBObject dbObject = dbCursor.next();
String name = String.valueOf(dbObject.get("nameCh"));
result = result + name + ",";
}
if (result.length() > 0) {
result = result.substring(0, result.length() - 1);
return result;
}
// }
return null;
}
那个大神能指教一下为什么api中的in操作 怎么不能用呢