在 MongoDB 中將唯一索引變為稀疏唯一索引?


對於稀疏索引,請使用 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
   }
]

更新日期:30-Mar-2020

140 瀏覽次數

開啟您的職業生涯

完成課程以獲得認證

開始學習
廣告