新聞中心

10多年的玉田網(wǎng)站建設(shè)經(jīng)驗(yàn),針對設(shè)計(jì)、前端、開發(fā)、售后、文案、推廣等六對一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。全網(wǎng)營銷推廣的優(yōu)勢是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動(dòng)調(diào)整玉田建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。創(chuàng)新互聯(lián)公司從事“玉田網(wǎng)站設(shè)計(jì)”,“玉田網(wǎng)站推廣”以來,每個(gè)客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。
什么是覆蓋索引查詢?
根據(jù) MongoDB 官方文檔,覆蓋查詢是一下查詢:
- 查詢中的所有字段都是索引的一部分;
- 查詢中返回的所有字段都在同一索引中。
因?yàn)椴樵冎械乃凶侄味际撬饕囊徊糠?,所?MongoDB 匹配查詢條件并使用相同的索引返回結(jié)果,而不實(shí)際查看文檔內(nèi)部。由于索引存在于 RAM 中,從索引中獲取數(shù)據(jù)比通過掃描文檔獲取數(shù)據(jù)快得多。
使用覆蓋索引查詢
假設(shè)在“users”集合中有以下文檔:
{
"_id" : ObjectId("603de64bd0fbb11d21e780dc"),
"phone" : "15011226666",
"birth" : "01-01-1991",
"name" : "bianchengbang",
"gender" : "M"
} 首先我們需要在“users”集合中的 gender 和 name 字段上創(chuàng)建一個(gè)復(fù)合索引,如下所示:
> db.users.createIndex({gender:1, name:1})
{
"createdCollectionAutomatically" : false,
"numIndexesBefore" : 1,
"numIndexesAfter" : 2,
"ok" : 1
} 現(xiàn)在,這個(gè)索引將包含以下查詢:
> db.users.find({gender:"M"},{name:1,_id:0})
{ "name" : "bianchengbang" }也就是說,對于上面的查詢,MongoDB 不會(huì)查看數(shù)據(jù)庫文檔。相反,它將從索引數(shù)據(jù)中獲取所需的數(shù)據(jù),這樣的查詢速度是非??斓?。
因?yàn)槲覀兊乃饕胁话?_id 字段,所以我們已經(jīng)從查詢的結(jié)果集中排除了它,因?yàn)?MongoDB 在默認(rèn)情況下會(huì)在每個(gè)查詢中返回 _id 字段,所以下面的查詢不會(huì)包含在上面創(chuàng)建的索引中:
> db.users.find({gender:"M"}, {name:1})
{ "_id" : ObjectId("603de64bd0fbb11d21e780dc"), "name" : "bianchengbang" } 另外,如果是以下的查詢,也不能使用覆蓋索引查詢:
- 所有索引字段是一個(gè)數(shù)組;
- 所有索引字段是一個(gè)子文檔。
文章標(biāo)題:MongoDB覆蓋索引查詢
文章源于:http://fisionsoft.com.cn/article/ccccghc.html


咨詢
建站咨詢
