我希望使用spring数据从mongodb获得一个字段的不同值的结果

Lax*_*are 4 mongodb spring-data-mongodb

我希望使用spring数据从mongodb获得一个字段的不同值的结果.我的代码是

Query query = new Query();

    query.addCriteria(Criteria.where("to.toId").in(toIdList));
    query.fields().include("from");
    query.fields().include("fromName");
    query.fields().include("sentTime");
    query.fields().include("hasAttachment");
    newMessages = mongoTemplate.find(query, NewMessage.class);
Run Code Online (Sandbox Code Playgroud)

Mzz*_*zzl 8

您可以使用distinct而不是find:

db.mycollection.distinct('fieldname', query)
Run Code Online (Sandbox Code Playgroud)

使用SpringData语法应该是这样的:

mongoTemplate.getCollection(collection).distinct(key, query)
Run Code Online (Sandbox Code Playgroud)

  • 太棒了......谢谢......只是一个注释:查询它不是一个Query对象,而是一个DBObject,比如一个"BasicDBObject",它带有你想要执行的"查询"的键和值. (2认同)