Spring Data Mongo-Distinct集合的问题 [英] Spring Data mongo - issue with Distinct collection
问题描述
Spring Data Mongo与众不同不起作用.我正在看两个文件.
Spring Data Mongo distinct doesn't works. I've following two documents.
/* 1 */
{
"_id" : ObjectId("5ca746fd92bc0733a4a6633b"),
"firstName" : "John",
"lastName" : "Kerr",
"emailId" : "john.kerr@gmail.com",
"hobbies" : [
{
"interest" : "Indoor",
"sports" : "Chess"
},
{
"interest" : "Loveoor",
"sports" : "Table Tennis"
}
],
"_class" : "com.example.Person"
}
/* 2 */
{
"_id" : ObjectId("5ca746fd92bc0733a4a6633c"),
"firstName" : "Neha",
"lastName" : "Parate",
"emailId" : "john.kerr@gmail.com",
"hobbies" : [
{
"interest" : "Indoor",
"sports" : "Chess"
},
{
"interest" : "Loveoor",
"sports" : "Table Tennis"
},
{
"interest" : "Happydoor",
"sports" : "Lawn Tennis"
}
],
"_class" : "com.example.Person"
}
当我执行db.person.distinct('hobbies')
时,我很容易获得不同的记录.
When I do db.person.distinct('hobbies')
, I get the distinct records easily.
[
{
"interest" : "Indoor",
"sports" : "Chess"
},
{
"interest" : "Loveoor",
"sports" : "Table Tennis"
},
{
"interest" : "Happydoor",
"sports" : "Lawn Tennis"
}
]
我想使用Spring Data Mongo或MongoTemplate做同样的事情.但是,一切运作方式都没有.
The same I wants to do using Spring Data Mongo or MongoTemplate. But none of the ways things are working.
@Query(value = "{}", fields = "{'hobbies' : 1}")
List<Person> findByDistinctHobbies();
推荐答案
在最新版本的 Spring Data Mongo 中,根据文档:
In the latest version of Spring Data Mongo as per docs: https://docs.spring.io/spring-data/mongodb/docs/current/reference/html/#mongo-template.query.distinct. You can even query to the embedded document to find out the distinct
documents.
通过MongoTemplate,您可以实现以下目标:
Through MongoTemplate you can achieve like below:
List<Object> object = mongoTemplate.query(Person.class).distinct("hobbies").all();
for (Object object2 : object) {
Hobbies hobbies = (Hobbies) object2;
System.out.println(hobbies);
}
}
这篇关于Spring Data Mongo-Distinct集合的问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!