mongoDB索引屬性

NoSQL MongoDB 技術 從頭開始自學java 2017-06-12

如何設置索引的屬性

mongoDB索引屬性

索引比較重要的屬性

mongoDB索引屬性

索引的名字

mongoDB索引屬性

查看mongoDB默認生成的索引的名字

mongoDB索引屬性

mongoDB默認生成的索引名字是key1_1(或-1)key2_1(或-1)

創建自定義名字的索引

db.test_2.ensureIndex({x:1,p:1},{name:'myIndexName'})

mongoDB索引屬性

查詢創建的結果:

mongoDB索引屬性

刪除索引 根據索引名字刪除索引

db.test_2.dropIndex('myIndexName')

mongoDB索引屬性

索引的唯一性

mongoDB索引屬性

創建了唯一索引的字段值不能重複.

創建唯一索引

db.test_4.ensureIndex({m:1,n:1},{unique:true})

mongoDB索引屬性

不能插入重複記錄:

mongoDB索引屬性

索引稀疏性

mongoDB索引屬性

mongoDB默認創建的索引是不稀疏.

稀疏性為true,mongoDB不會為其他的字段創建索引,而只會為指定的字段創建索引.

查詢存在某個字段的記錄

db.test_4.find({m:{$exists:true}})

mongoDB索引屬性

剛剛插進去的{n:1}的記錄查詢不到.

創建稀疏索引

db.test_4.ensureIndex({m:1},{sparse:true})

mongoDB索引屬性

如果創建的是稀疏索引,則索引不包含的字段是查詢不出來的.

mongoDB索引屬性

仔細看看上圖,需要使用hint,強制使用某個索引,由於m_1索引是稀疏索引,並且該索引只有m字段,沒有其他字段,所以根據其他字段查詢的時候是會查詢不到記錄的.

下面我們測試一下不是稀疏索引的情況:

在w字段創建索引:

mongoDB索引屬性

查詢一下不存在記錄:

mongoDB索引屬性

可以看到是可以查詢到不存在w字段的記錄.

過期索引

mongoDB索引屬性

相關推薦

推薦中...