희소 색인의 경우 sparse:true를 사용합니다. . 다음은 인덱스를 생성하는 쿼리입니다 -
> db.demo229.ensureIndex({"ClientName":1}, {unique: true}); { "createdCollectionAutomatically" : true, "numIndexesBefore" : 1, "numIndexesAfter" : 2, "ok" : 1 }
다음은 인덱스를 표시하는 쿼리입니다 -
> db.demo229.getIndexes();
이것은 다음과 같은 출력을 생성합니다 -
[ { "v" : 2, "key" : { "_id" : 1 }, "name" : "_id_", "ns" : "test.demo229" }, { "v" : 2, "unique" : true, "key" : { "ClientName" : 1 }, "name" : "ClientName_1", "ns" : "test.demo229" } ]
이제 인덱스를 삭제하고 MongoDB에서 고유 인덱스를 희소 고유 인덱스로 변경해 보겠습니다. -
> db.demo229.dropIndex("ClientName_1"); { "nIndexesWas" : 2, "ok" : 1 } > db.demo229.ensureIndex({"ClientName":1}, {unique: true, sparse:true}); { "createdCollectionAutomatically" : false, "numIndexesBefore" : 1, "numIndexesAfter" : 2, "ok" : 1 }
다음은 인덱스를 표시하는 쿼리입니다 -
> db.demo229.getIndexes();
이것은 다음과 같은 출력을 생성합니다 -
[ { "v" : 2, "key" : { "_id" : 1 }, "name" : "_id_", "ns" : "test.demo229" }, { "v" : 2, "unique" : true, "key" : { "ClientName" : 1 }, "name" : "ClientName_1", "ns" : "test.demo229", "sparse" : true } ]