나는 n 초 단위로 파일 시스템을 검색하여 콜렉션에 저장하는 작업을 가지고 있습니다.Java mongodb (morphia)는 고유 한 문서를 보장합니다.
나는 데이터베이스에서 동일한 파일로 두 번 끝나지 않도록하는 최선의 방법이 확실하지 않습니다. 현재 파일의 절대 경로를 가져 와서 데이터베이스의 다른 절대 경로에 대해 확인 중입니다.
public Movie findByAbsolutePath(String absolutePath) {
return getDatastore().find(Movie.class, "absolutePath", absolutePath).limit(1).get();
}
null을 반환하면 저장하고 저장하십시오.
각 파일을 데이터베이스와 비교하여 확인하는 것이 가장 좋은 방법입니까? 나는 다음과 같은 인덱스 주석을 사용하여 시도했지만 작동하지 않는 것 내가
@Indexes(@Index(fields = {@Field("fileName"), @Field("absolutePath")}, options = @IndexOptions(unique = true, dropDups = true)))
빨리 내가 확인하고있어 이전의 방법보다 (내가이 일을 얻을 수있는 가정)인가요 중복으로 끝낼 중복에 대해?
파일을 나타내는 Java 값 객체를 디자인 할 수 있습니다. 중복 된 파일을 쉽게 감지 할 수 있도록 해시 코드 및 메서드를 구현합니다. – Hector
해시 코드와 함께 파일 pojo를 이미 가지고 있는데, 그게 당신이 참조하는 것인가? 그런데 어떻게 몽고와 함께 사용할 수 있을까요? –
한 가지 방법은 파일의 절대 경로를 _id로 사용하는 것입니다. 중복 된 항목이 될 수는 없지만, 고유 한 인덱스가있는 올바른 방법을 사용하는 것 외에는 다른 이유가 있습니다. 중복 된 항목은 내부로 들어갈 수 없습니다. 하지만 고유 인덱스는 대소 문자를 구분하지 않습니다 afaik –