MongoDB与Java中的条件不同

时间:2014-10-29 11:48:02

标签: java spring mongodb distinct

是否有可能实现与条件不同的MongoDB,如下所示,但是使用Java驱动程序?

db.orders.distinct( 'ord_dt', { price: { $gt: 10 } } )

我尝试使用MongoRepository,如下所示

// Enables the distinct flag for the query
List<Person> findDistinctPeopleByLastnameOrFirstname(String lastname, String firstname);

List<Person> findPeopleDistinctByLastnameOrFirstname(String lastname, String firstname);

但在我看来它运作不正常。我也试过MongoTemplate

mongoTemplate.getCollection("mycollection").distinct("myfield")

但是没有办法实施条件。知道如何解决这个问题吗?

祝你好运

2 个答案:

答案 0 :(得分:11)

Spring MongoTemplate内置distinct query支持:

mongoTemplate.getCollection("collection_name").distinct("field", new BasicDBObject("price", new BasicDBObject("$gt", 10)));

答案 1 :(得分:0)

这可能会对你有帮助。

BasicDBObject match = new BasicDBObject();
match.put("$query", new BasicDBObject("price", new BasicDBObject("$gt", 10)));
List list = mongoTemplate.getCollection("mycollection").distinct("ord_dt", match);