我的MongoDB json结构是
{
"_id" : "122134231234234",
"name" : "Total_pop",
"description" : "sales category",
"source" : "public",
"dataset" :"d1"
},
{
"_id" : "1123421231234234",
"name" : "Total_pop",
"description" : "sales category",
"source" : "public",
"dataset" :"d1"
},
{
"_id" : "12312342332423343",
"name" : "Total_pop",
"description" : "sales category",
"source" : "private",
"description" : "d1"
}
Run Code Online (Sandbox Code Playgroud)
我需要获得不同的数据集的集合,其中source是公共的.我试过这个查询,但它不起作用:
Criteria criteria = new Criteria();
criteria.where("source").in("public");
query.addCriteria(criteria);
query.fields().include("name");
query.fields().include("description");
query.fields().include("description");
query.fields().include("source"); List list =
mongoTemplate.getCollection("collectionname").distinct("source", query);
Run Code Online (Sandbox Code Playgroud)
你能帮帮我吗?
我需要从集合中获取不同的值。这些数据位于集合的字段中。这意味着我需要从用户集合中获取名称集。我使用 cmd 尝试了它,并得到了我需要的结果。但我不明白如何在 spring 文件中编写查询。由于我是 java 新手,所以我没有足够的知识来处理这个问题。
服务.java
package limark.internal.css.services;
import limark.internal.css.core.model.User;
import limark.internal.css.exceptions.ResourceNotFoundException;
import limark.internal.css.persistence.UserRepository;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.validation.constraints.NotNull;
import java.lang.reflect.Array;
import java.time.OffsetDateTime;
import java.util.List;
import static limark.internal.css.core.MessageConstants.USER_NOT_FOUND;
@Service
@Slf4j
public class UserService {
private final UserRepository userRepository;
@Autowired
public UserService(final UserRepository userRepository){
this.userRepository = userRepository;
}
/**
* Creates a new User
* @param user object
* @return user object
*/
public User create(User user){
user.setCreatedByLoginId("");
user.setCreatedTs(OffsetDateTime.now());
return userRepository.save(user);
}
/**
* Returns …Run Code Online (Sandbox Code Playgroud)