node.js mongoose index索引操作
,感興趣的朋友一起看看吧" />

最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

node.js mongoose index索引操作

 更新時(shí)間:2023年12月25日 11:05:26   作者:SuppperSA  
在 Mongoose 中,索引(Index)是一種用于提高查詢性能的數(shù)據(jù)結(jié)構(gòu),它可以加速對(duì)數(shù)據(jù)庫(kù)中文檔的檢索操作,本文給大家介紹
node.js mongoose index索引操作
,感興趣的朋友一起看看吧

簡(jiǎn)介

在 Mongoose 中,索引(Index)是一種用于提高查詢性能的數(shù)據(jù)結(jié)構(gòu),它可以加速對(duì)數(shù)據(jù)庫(kù)中文檔的檢索操作

索引類(lèi)型

單索引、復(fù)合索引、文本索引、多鍵索引、哈希索引、地理位置空間索引、通配符索引

單索引

在了解索引之前先看一下mongoDb庫(kù),庫(kù)中集合tours有400條數(shù)據(jù),有slug、ratingAverage、price、summary等字段,接下來(lái)就是對(duì)以上四個(gè)字段做索引

我們查詢slug為the-forest-hiker的文檔,在 MongoDB 中,explain方法用于獲取有關(guān)查詢執(zhí)行計(jì)劃的詳細(xì)信息,為Query的原型方法,調(diào)用:const queryInfo = await query.explain(),查看執(zhí)行結(jié)果

其中totalDocsExamined為400,表示掃描了400個(gè)文檔,nReturend為1表示匹配并返回文檔的數(shù)量為1。

查詢一條數(shù)據(jù)就需要把整個(gè)集合全部掃描效率過(guò)于低,當(dāng)文檔個(gè)數(shù)少的情況下可以忽略查詢速度,如果文檔個(gè)數(shù)數(shù)以萬(wàn)計(jì),那么就要優(yōu)化查詢速度,所以需要索引。

為slug添加索引,schema.index({ slug: 1 })  (1表示升序,-1表示降序),再查詢

tourSchema.index({ slug: 1 });

也可在定義schema的時(shí)候設(shè)置文檔字段的schemaType的index為true

此時(shí)totalDocsExamined為1,表示只掃描了1個(gè)文檔,極大的提高了查詢速度。

當(dāng)執(zhí)行query后,slug_1的Usage為1,表示索引命中了一次。

復(fù)合索引

tourSchema.index({ price: 1, ratingsAverage: -1 });

同時(shí)為兩個(gè)字段添加索引,表示先對(duì)price進(jìn)行升序,然后在同price的情況下進(jìn)行ratingsAverage降序。

查詢price大于等于1000并且ratingsAverage大于等于4的文檔,查詢?cè)敿?xì)信息totalDocsExamined為5,nReturend為5,如果不設(shè)置復(fù)合索引,對(duì)兩個(gè)字段進(jìn)行復(fù)合查詢的時(shí)候,會(huì)對(duì)全文檔進(jìn)行查詢匹配。

文本索引

tourSchema.index({ summary: 'text' });
 const doc = await tourModel.find({ $text: { $search: 'National' }});

查詢信息

如果不創(chuàng)建索引,則掃描全文檔。

多鍵索引是針對(duì)數(shù)組

相關(guān)文章

  • 詳解阿里Node.js技術(shù)文檔之process模塊學(xué)習(xí)指南

    詳解阿里Node.js技術(shù)文檔之process模塊學(xué)習(xí)指南

    這篇文章主要介紹了詳解阿里Node.js技術(shù)文檔之process模塊學(xué)習(xí)指南,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • node.js使用Moment.js js 時(shí)間計(jì)算方法示例小結(jié)

    node.js使用Moment.js js 時(shí)間計(jì)算方法示例小結(jié)

    這篇文章主要介紹了node.js使用Moment.js js 時(shí)間計(jì)算方法,結(jié)合實(shí)例形式分析了Moment.js js模塊時(shí)間計(jì)算的常用操作技巧與相關(guān)注意事項(xiàng),需要的朋友可以參考下
    2023-05-05
  • 談?wù)刵ode.js中的模塊系統(tǒng)

    談?wù)刵ode.js中的模塊系統(tǒng)

    這篇文章主要介紹了node.js中的模塊系統(tǒng),幫助大家更好的理解和學(xué)習(xí)node.js框架,感興趣的朋友可以了解下
    2020-09-09
  • Node.js開(kāi)發(fā)第三方微信公眾平臺(tái)

    Node.js開(kāi)發(fā)第三方微信公眾平臺(tái)

    這篇文章主要介紹了Node.js開(kāi)發(fā)第三方微信公眾平臺(tái)的相關(guān)資料,需要的朋友可以參考下
    2017-06-06
  • 使用nvm和nrm優(yōu)化node.js工作流的方法

    使用nvm和nrm優(yōu)化node.js工作流的方法

    這篇文章主要介紹了使用nvm和nrm優(yōu)化node.js工作流的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2019-01-01
  • node.js 動(dòng)態(tài)執(zhí)行腳本

    node.js 動(dòng)態(tài)執(zhí)行腳本

    其中的Script對(duì)象,就與require('vm')返回的對(duì)象很相似,而實(shí)質(zhì)上,vm模塊就是對(duì)Script對(duì)象的封裝。
    2016-06-06
  • Node.js中的模塊系統(tǒng)介紹

    Node.js中的模塊系統(tǒng)介紹

    這篇文章介紹了Node.js中的模塊系統(tǒng),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-04-04
  • Node.js 使用 gRPC從定義到實(shí)現(xiàn)過(guò)程詳解

    Node.js 使用 gRPC從定義到實(shí)現(xiàn)過(guò)程詳解

    gRPC是一個(gè)高性能、開(kāi)源的遠(yuǎn)程過(guò)程調(diào)用(RPC)框架,由 Google 開(kāi)發(fā),它支持多種編程語(yǔ)言,旨在簡(jiǎn)化和優(yōu)化分布式系統(tǒng)中的服務(wù)通信,本文給大家介紹Node.js 使用 gRPC從定義到實(shí)現(xiàn)過(guò)程,感興趣的朋友跟隨小編一起看看吧
    2024-07-07
  • Node.js如何自動(dòng)審核團(tuán)隊(duì)的代碼

    Node.js如何自動(dòng)審核團(tuán)隊(duì)的代碼

    在項(xiàng)目開(kāi)發(fā)中,統(tǒng)一團(tuán)隊(duì)的代碼風(fēng)格很重要,本文介紹如何用Node.js來(lái)自動(dòng)審核,來(lái)提高您的開(kāi)發(fā)速度。
    2016-07-07
  • node如何實(shí)現(xiàn)把包發(fā)布到npm上

    node如何實(shí)現(xiàn)把包發(fā)布到npm上

    這篇文章主要介紹了node如何實(shí)現(xiàn)把包發(fā)布到npm上的情況,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2025-05-05

最新評(píng)論

团风县| 铜陵市| 商丘市| 田林县| 虞城县| 延吉市| 晋中市| 南投市| 额济纳旗| 开远市| 松溪县| 霍州市| 瑞金市| 榕江县| 英吉沙县| 江源县| 隆子县| 阜新| 龙胜| 巴楚县| 河北省| 清苑县| 兖州市| 仲巴县| 东乌珠穆沁旗| 弋阳县| 哈尔滨市| 高密市| 白朗县| 深圳市| 道真| 商水县| 阜南县| 禹城市| 仲巴县| 龙门县| 财经| 民乐县| 安陆市| 武安市| 垣曲县|