在线二区人妖系列_国产亚洲欧美日韩在线一区_国产一级婬片视频免费看_精品少妇一区二区三区在线

鍍金池/ 教程/ 數(shù)據(jù)庫(kù)/ 高級(jí)索引
更新文檔
GridFS
Rockmongo 管理工具
Map Reduce
Java
創(chuàng)建備份
數(shù)據(jù)模型
創(chuàng)建數(shù)據(jù)庫(kù)
映射
查詢文檔
索引限制
ObjectId
刪除文檔
數(shù)據(jù)類型
高級(jí)索引
索引
優(yōu)勢(shì)
記錄排序
查詢分析
插入文檔
刪除集合
全文檢索
創(chuàng)建集合
概述
數(shù)據(jù)庫(kù)引用
覆蓋索引查詢
安裝環(huán)境
PHP
刪除數(shù)據(jù)庫(kù)
固定集合
關(guān)系
聚合
自動(dòng)增長(zhǎng)
復(fù)制
限制記錄
部署
分片
正則表達(dá)式
原子操作

高級(jí)索引

假如一個(gè) users 集合中具有下列文檔:

{
   "address": {
      "city": "Los Angeles",
      "state": "California",
      "pincode": "123"
   },
   "tags": [
      "music",
      "cricket",
      "blogs"
   ],
   "name": "Tom Benzamin"
}

上述文檔包含一個(gè)地址子文檔(address sub-document)與一個(gè)標(biāo)簽數(shù)組(tags array)。

索引數(shù)組字段

假設(shè)我們想要根據(jù)標(biāo)簽來搜索用戶文檔。首先在集合中創(chuàng)建一個(gè)標(biāo)簽數(shù)組的索引。

反過來說,在標(biāo)簽數(shù)組上創(chuàng)建一個(gè)索引,也就為每一個(gè)字段創(chuàng)建了單獨(dú)的索引項(xiàng)。因此在該例中,當(dāng)我們創(chuàng)建了標(biāo)簽數(shù)組的索引時(shí),也就為它的music(音樂)、cricket(板球)以及 blog(博客)值創(chuàng)建了獨(dú)立的索引。

使用下列命令創(chuàng)建標(biāo)簽數(shù)據(jù)的索引:

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

創(chuàng)建完該索引后,按照如下方式搜索集合中的標(biāo)簽字段:

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

為了驗(yàn)證所使用索引的正確性,使用 explain 命令,如下所示:

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

上述 explain 命令的執(zhí)行結(jié)果是 "cursor" : "BtreeCursor tags_1",表示使用了正確的索引。

索引子文檔字段

假設(shè)需要根據(jù)市(city)、州(state)、個(gè)人身份號(hào)碼(pincode)字段來搜索文檔。因?yàn)樗羞@些字段都屬于地址子文檔字段的一部分,所以我們將在子文檔的所有字段上創(chuàng)建索引。

使用如下命令在子文檔的所有三個(gè)字段上創(chuàng)建索引:

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

一旦創(chuàng)建了索引,就可以使用索引來搜索任何子文檔字段:

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

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

>db.users.find({"address.city":"Los Angeles","address.state":"California"})

另外也支持如下這樣的查詢:

>db.users.find({"address.city":"LosAngeles","address.state":"California","address.pincode":"123"})

上一篇:創(chuàng)建集合下一篇:PHP