몽고디비에서 인덱스를 만들고 사용하는 간단한 방법에 대해 실습해 본다.
1. 인덱스 만들기
- <collection>.ensureIndex({key:1 or -1}) 예) db.things.ensureIndex({age:1});
- 1 (양수) : ascending, -1 (음수) : descending
> use indextest
switched to db indextest
> db.things.save({age:12, name:'dowon', title:'hi'});
> db.things.save({age:22, name:'dowon2', title:'hi2'});
> db.things.ensureIndex({age:1});
> db.system.indexes.find();
{ "v" : 1, "key" : { "_id" : 1 }, "ns" : "indextest.things", "name" : "_id_" }
{ "v" : 1, "key" : { "age" : 1 }, "ns" : "indextest.things", "name" : "age_1" }
2. 인덱스 삭제하기
- <collection>.dropIndexes({key:1 or -1}) 예) db.things.dropIndexes({age:1});
> db.things.dropIndexes({age:1});
{
"nIndexesWas" : 3,
"msg" : "non-_id indexes dropped for collection",
"ok" : 1
}
> db.system.indexes.find();
{ "v" : 1, "key" : { "_id" : 1 }, "ns" : "indextest.things", "name" : "_id_" }
3. 인덱스 종류
- 복합 인덱스 (Compound Key Index) : 여러개의 key를 기반으로 인데스 생성가능
예) db.things.ensureIndex({age:1, name:-1});
- 희소 인덱스 (Sparse Index) : 색인된 필드만 인덱스 한다
예) db.things.ensureIndex({title:1}, {sparse:true}); 기본은 false
- Unique 인덱스 : 색인된 키에 대해 이미 있거나 중복된 것은 insert되지 않는다
예) db.things.ensureIndex({name:1}, {unique: true});
* 하단 참조 Link
<참조>
'MongoDB > Prototyping' 카테고리의 다른 글
[MongoDB] ReplicaSet 환경 구성하기 (1) (0) | 2013.07.27 |
---|---|
[MongoDB] Master/Slave 만들기 (0) | 2013.07.27 |
[Mongoose] Schema의 Virtual, Method, Pre 테스트 (0) | 2013.07.10 |
[Mongoose] Foreign Key 설정 및 Auto Increment Number 플러그인 (0) | 2013.05.28 |
[MongoDB] node.js에서 mongoose 외 기타 클라이언트모듈 통하여 연결하기 (0) | 2013.02.16 |