我希望找到具有一些查询条件的字段的不同值。我的代码是......
public List searchservice(String th_type) {
Query query = new Query();
query.addCriteria(Criteria.where("th_type").regex(th_type));
List list = operations.getCollection("doclist").distinct("th_type", query);
return list;
}
在mongo模板中定义了一个独特的函数
mongoTemplate.getCollection(collection).distinct(key, query)
我的代码是错误的,因为我使用简单的Query对象而不是DBObject Query。我如何在这里使用DBObject查询?
答案 0 :(得分:2)
使用 BasicDBObject :
public List searchservice(String th_type) {
BasicDBObject dbObject = new BasicDBObject();
dbObject.append("th_type", th_type);
DBCollection dBCollection = operations.getCollection("doclist");
List list = dBCollection.distinct("th_type", dbObject);
return list;
}
<强>更新强>
使用正则表达式:
BasicDBObject regexQuery = new BasicDBObject();
regexQuery.put("th_type", new BasicDBObject("$regex", th_type));
List list = operations.getCollection("doclist").distinct("th_type",regexQuery);