在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 教程/ 數(shù)據(jù)庫/ MongoDB高級索引
MongoDB教程
MongoDB覆蓋查詢
MongoDB數(shù)據(jù)建模
MongoDB聚合
MongoDB更改用戶密碼和自定義數(shù)據(jù)
MongoDB用戶
MongoDB分片
MongoDB創(chuàng)建集合
MongoDB文本搜索
MongoDB數(shù)據(jù)類型
MongoDB GridFS
MongoDB索引限制
MongoDB插入文檔
MongoDB刪除集合
MongoDB數(shù)據(jù)庫引用
MongoDB復(fù)制
MongoDB Map Reduce
Python連接MongoDB操作
MongoDB原子操作
MongoDB特點
MongoDB安全檢查表
MongoDB排序記錄
MongoDB自動遞增序列
MongoDB安裝配置(Windows)
MongoDB備份與恢復(fù)
MongoDB安裝配置(Ubuntu)
Ruby連接MongoDB操作
MongoDB部署
MongoDB索引
MongoDB分析查詢
MongoDB投影(選擇字段)
MongoDB刪除數(shù)據(jù)庫
MongoDB認(rèn)證
MongoDB限制記錄數(shù)
MongoDB添加用戶
MongoDB固定循環(huán)集合
MongoDB高級索引
MongoDB數(shù)據(jù)庫的優(yōu)點
MongoDB快速入門
MongoDB創(chuàng)建數(shù)據(jù)庫
MongoDB啟用身份驗證
MongoDB歷史
MongoDB管理用戶和角色
MongoDB安裝配置(RedHat/CentOS)
MongoDB刪除文檔
Java連接MongoDB操作
MongoDB正則表達(dá)式
MongoDB查詢文檔
MongoDB關(guān)聯(lián)關(guān)系
PHP連接MongoDB操作
MongoDB更新文檔
MongoDB ObjectId

MongoDB高級索引

在這一章節(jié)中,我們來學(xué)習(xí)高級索引,假設(shè)users集合的以下文檔 -

{
   "address": {
      "city": "Haikou",
      "province": "Hainan",
      "pincode": "123456"
   },
   "tags": [
      "music",
      "cricket",
      "blogs"
   ],
   "name": "Maxsu"
}

上述文檔包含地址子文檔和標(biāo)簽數(shù)組。

索引數(shù)組字段

假設(shè)要根據(jù)用戶的標(biāo)簽搜索用戶文檔。為此,我們將在集合中的tags數(shù)組上創(chuàng)建一個索引。

在數(shù)組上創(chuàng)建一個索引依次為每個字段創(chuàng)建單獨的索引條目。所以在這個例子中,當(dāng)在tags數(shù)組上創(chuàng)建一個索引時,將為其值music,cricketblogs創(chuàng)建單獨的索引。

要在tags數(shù)組上創(chuàng)建索引,請使用以下代碼 -

>db.users.ensureIndex({"tags":1})

創(chuàng)建索引后,可以搜索這個集合的標(biāo)簽字段 -

>db.users.find({tags:"cricket"})

要驗證是否使用正確的索引,請使用以下說明命令 -

>db.users.find({tags:"cricket"}).explain()

上面的命令生成:“cursor”:“BtreeCursor tags_1”,它確認(rèn)使用了正確的索引。

索引子文檔字段

假設(shè)要搜索基于city,provincepincode字段的文檔。 由于所有這些字段都是地址子文檔字段的一部分,因此將在子文檔的所有字段上創(chuàng)建一個索引。

要在子文檔的所有三個字段上創(chuàng)建索引,請使用以下代碼 -

>db.users.ensureIndex({"address.city":1,"address.state":1,"address.pincode":1})

創(chuàng)建索引后,就可以使用此索引來搜索任何子文檔的字段了,如下所示:

>db.users.find({"address.city":"Haikou"})

請記住,查詢表達(dá)式必須遵循指定的索引的順序。 所以上面創(chuàng)建的索引將支持以下查詢 -

>db.users.find({"address.city":"Haikou","address.province":"Hainan"})

它還將支持以下查詢 -

>db.users.find({"address.city":"Haikou","address.province":"Hainan",
   "address.pincode":"12345"})