[MONGODB] MongoDB를 복합 키
MONGODBMongoDB를 복합 키
난 그냥 MongoDB를 시작하기 그리고 난 내가 고유 의미한다는 항목에 대한 중복 레코드를 많이 얻을 것으로 나타났습니다. 내 데이터에 대한 복합 키를 사용하고 내가 그들을 만드는 방법에 대한 정보를 찾고 있어요 방법을 알고 싶습니다. 귀하의 답변에 그 좋지 않을까 포함, 그래서 마지막으로, 나는 나의 ORM 레이어로 액세스 몽고와 모르핀에 자바를 사용하고 있습니다.
모르핀 : http://code.google.com/p/morphia/
해결법
-
==============================
1.당신은뿐만 아니라 _id 필드 개체를 사용할 수 있습니다. _id 필드는 항상 고유합니다. 당신이 가지 복합 기본 키를 얻을 방법 :
당신은뿐만 아니라 _id 필드 개체를 사용할 수 있습니다. _id 필드는 항상 고유합니다. 당신이 가지 복합 기본 키를 얻을 방법 :
{ _id : { a : 1, b: 1} }
키의 순서 (예에서 a와 b는) 당신이 주변을 교환하는 경우, 그것은 다른 개체로 간주됩니다, 중요한 것은 이러한 ID를 만들 때 조심해.
다른 가능성은 혼자 _id 떠나 고유 복합 인덱스를 생성하는 것입니다.
db.things.ensureIndex({firstname: 1, lastname: 1}, {unique: true}); //Deprecated since version 3.0.0, is now an alias for db.things.createIndex()
https://docs.mongodb.org/v3.0/reference/method/db.collection.ensureIndex/
-
==============================
2.당신은 당신이에 고유성 테스트 할 거라고 문서의 필드에 고유 인덱스를 만들 수 있습니다. 잘 (MongoDB의 토지 화합물 키 인덱스라고합니다) 당신이 문서에서 볼 수 있듯이 그들은 합성 할 수있다. 모르핀은 필드 레벨에서 지원 색인에 @Indexed 주석을 가지고있다. 모르핀과 또한 당신은 @Indexed 주해로 클래스 레벨에서 복합 키를 정의 할 수 있습니다.
당신은 당신이에 고유성 테스트 할 거라고 문서의 필드에 고유 인덱스를 만들 수 있습니다. 잘 (MongoDB의 토지 화합물 키 인덱스라고합니다) 당신이 문서에서 볼 수 있듯이 그들은 합성 할 수있다. 모르핀은 필드 레벨에서 지원 색인에 @Indexed 주석을 가지고있다. 모르핀과 또한 당신은 @Indexed 주해로 클래스 레벨에서 복합 키를 정의 할 수 있습니다.
-
==============================
3.난 그냥 당신이 좋아하는 일을 할 것, 그래서 질문은, "자바"로 표시되는 것으로 나타났습니다 :
난 그냥 당신이 좋아하는 일을 할 것, 그래서 질문은, "자바"로 표시되는 것으로 나타났습니다 :
final BasicDBObject id = new BasicDBObject("a", aVal) .append("b", bVal) .append("c", cVal); results = coll.find(new BasicDBObjet("_id", id));
나도 모르핀을 사용하지만 (작동 중에 있음)은 마샬에 복합 키를 시도로 오류가 많이 발생을 발견했다. 나는 이러한 오류를 방지하기 위해 쿼리 할 때 위의 사용합니다.
(또한 작동) 내 원래 코드 :
final ProbId key = new ProbId(srcText, srcLang, destLang); final QueryImpl<Probabilities> query = ds.createQuery(Probabilities.class) .field("id").equal(key); Probabilities probs = (Probabilities) query.get();
내 ProbId 클래스는 @Entity (noClassnameStored = TRUE)로하고, 확률 클래스 내부에 주석을 붙일 수 있고, id 필드는 @Id ProbId ID입니다;
from https://stackoverflow.com/questions/7222062/mongodb-composite-key by cc-by-sa and MIT license
'MONGODB' 카테고리의 다른 글
[MONGODB] 어떻게하여 MongoDB의 범위 쿼리를 사용하여 페이지 매김을 할? (0) | 2019.12.17 |
---|---|
[MONGODB] MongoDB의의 속성을 가진 많은 관계로 많은 대표 모범 모델 (0) | 2019.12.17 |
[MONGODB] 봄의 데이터 MongoDB를 : MappingMongoConverter의 제거 _class (0) | 2019.12.17 |
[MONGODB] {발견} 속도 대 MongoDB를 {집계 $ 일치} (0) | 2019.12.17 |
[MONGODB] 몽고는 운영자 성능에 $ (0) | 2019.12.17 |