สำหรับดัชนีแบบกระจาย ให้ใช้ 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
}
]