如何在 spring boot mongorepository 上找到现有的集合列表?
How to find the existing collection lists on spring boot mongorepository?
首先,下面是mongodb、
的文档class
@Getter
@Setter
@Document(collection="Posts") // The name of collection is "Posts"
public class Post {
@Id
private String _id;
@Indexed(unique = true)
private Long id;
@Field
private String title;
@Field
private String body;
@Field
private Date createdDate;
@DBRef
private User user;
@DBRef
private Collection<Tag> tags;
}
我制作了简单的 mongorepository 界面
public interface PostMongoRepository extends MongoRepository<Post, Long> {
}
但我在将初始 json 数据加载到服务层的 mongodb 时遇到了麻烦,
try (BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(file), "EUC-KR"))) {
String line;
StringBuffer strBuffer = new StringBuffer();
while ((line = br.readLine()) != null) {
strBuffer.append(line+ "\n");
}
ObjectMapper objectMapper = new ObjectMapper();
objectMapper.disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES);
TypeReference<List<Post>> typeReference = new TypeReference<List<Post>>(){};
Collection<Post> posts = objectMapper.readValue(strBuffer.toString(), typeReference);
// I am stuck on this line
if(postMongoRepository.FIND_THE_COLLECTION_TITLE) {
for(Post post : posts) {
postMongoRepository.save(post);
}
}
} catch (IOException ex) {
System.out.println(ex.getMessage());
}
我尝试确认集合"Posts"是否生成。但是我不知道如何通过 mongorepository 接口找到现有的集合。我尝试使用@Query注解,但它仅限于键值,而不是集合。
我想了解如何使用 mongorepository 接口查找 mongodb 数据库的现有集合。
您可以使用 MongoOperations.getCollectionNames()
:
获取所有集合名称
无法根据 Spring 数据存储库获取此信息。
一般情况下也不需要检查集合是否存在。如果缺少,它将由 Spring 创建(通常在启动时)。
首先,下面是mongodb、
的文档class@Getter
@Setter
@Document(collection="Posts") // The name of collection is "Posts"
public class Post {
@Id
private String _id;
@Indexed(unique = true)
private Long id;
@Field
private String title;
@Field
private String body;
@Field
private Date createdDate;
@DBRef
private User user;
@DBRef
private Collection<Tag> tags;
}
我制作了简单的 mongorepository 界面
public interface PostMongoRepository extends MongoRepository<Post, Long> {
}
但我在将初始 json 数据加载到服务层的 mongodb 时遇到了麻烦,
try (BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(file), "EUC-KR"))) {
String line;
StringBuffer strBuffer = new StringBuffer();
while ((line = br.readLine()) != null) {
strBuffer.append(line+ "\n");
}
ObjectMapper objectMapper = new ObjectMapper();
objectMapper.disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES);
TypeReference<List<Post>> typeReference = new TypeReference<List<Post>>(){};
Collection<Post> posts = objectMapper.readValue(strBuffer.toString(), typeReference);
// I am stuck on this line
if(postMongoRepository.FIND_THE_COLLECTION_TITLE) {
for(Post post : posts) {
postMongoRepository.save(post);
}
}
} catch (IOException ex) {
System.out.println(ex.getMessage());
}
我尝试确认集合"Posts"是否生成。但是我不知道如何通过 mongorepository 接口找到现有的集合。我尝试使用@Query注解,但它仅限于键值,而不是集合。
我想了解如何使用 mongorepository 接口查找 mongodb 数据库的现有集合。
您可以使用 MongoOperations.getCollectionNames()
:
无法根据 Spring 数据存储库获取此信息。
一般情况下也不需要检查集合是否存在。如果缺少,它将由 Spring 创建(通常在启动时)。