如何在mongo模板的不同功能中使用DBObject Query?

时间:2015-04-01 09:04:17

标签: mongodb distinct

我希望找到具有一些查询条件的字段的不同值。我的代码是......

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查询?

1 个答案:

答案 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);