Mongodb通配符文本索引的用法詳解
學(xué)習(xí)mongodb,體會mongodb的每一個使用細(xì)節(jié),歡迎閱讀威贊的文章。這是威贊發(fā)布的第99篇mongodb技術(shù)文章,歡迎瀏覽本專欄威贊發(fā)布的其他文章。如果您認(rèn)為我的文章對您有幫助或者解決您的問題,歡迎在文章下面點個贊,或者關(guān)注威贊。謝謝。威贊文章都是結(jié)合官方文檔,翻譯整理而來,并對每個知識點的描述都認(rèn)真思考和實踐,對難以理解的地方,使用簡單容易理解的方式進(jìn)行闡述。
通配符索引為Mongodb靈活的數(shù)據(jù)結(jié)構(gòu),提供了高效查詢的解決方案。但Mongodb文檔中明確的提出來,通配符索引和通配符文本索引,是兩個完全不同的索引。那通配符文本索引到底是什么樣的方式來運(yùn)作,本文繼續(xù)研究官方文檔,來歸納總結(jié)通配符文本索引的介紹和用法。
概述
用戶可以為集合中多個文本字段創(chuàng)建一個文本索引。這種集合多個字段的索引,就是通配符文本索引。通配符文本索引支持未知字段,可變字段和動態(tài)生成字段的文本查詢。
使用通配標(biāo)識符$**和索引類型text來構(gòu)建通配符文本索引。
db.<collection>.createIndex({"$**": "text"})
通配符索引和通配符文本索引,是不同的索引。通配符文本索引支持使用$text操作符的查詢, 而通配符索引不支持使用該操作符查詢。
當(dāng)用戶在集合中添加通配符文本索引后,向集合中插入數(shù)據(jù)或者數(shù)據(jù)更新時,在通配符文本索引中的數(shù)據(jù)都會更新。因此,通配符文本索引對數(shù)據(jù)插入和更新有負(fù)面的影響。Mongodb建議,僅在字段不確定或未來字段可能發(fā)生變化時,使用通配符文本索引。通配符文本索引于其他索引的工作方式不一致。當(dāng)集合中包含了過多隨意的字段導(dǎo)致創(chuàng)建索引困難時,要考慮重新定義數(shù)據(jù)的結(jié)構(gòu)。
應(yīng)用
創(chuàng)建blog集合并插入數(shù)據(jù)
db.blog.insertMany([ { "_id": 1, "content": "This is a blog post about MongoDB", "about": "MongoDB", "keywords": [ "MongoDB", "database", "NoSQL" ] }, { "_id": 2, "content": "This is a blog post about MongoDB and Python", "about": "MongoDB", "keywords": [ "MongoDB", "Python" ] }, { "_id": 3, "content": "This is a blog post about NoSQL databases", "about": "NoSQL", "keywords": [ "NoSQL", "database" ] } ])
構(gòu)建通配符文本索引
db.blog.createIndex({"$**": "text"})
使用通配符索引查詢
db.blog.find({$text: {$search: "MongoDB"}})
查看執(zhí)行計劃
匹配多個字符串
db.blog.find({$text: {$search: "MongoDB NoSQL"}})
到此這篇關(guān)于Mongodb通配符文本索引的文章就介紹到這了,更多相關(guān)Mongodb通配符內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
centos7防火墻導(dǎo)致java程序訪問mongodb3.0.1時報錯的問題分析
這篇文章主要介紹了centos7防火墻導(dǎo)致java程序訪問mongodb3.0.1時報錯的問題分析,需要的朋友參考下2017-01-01解決MongoDB6.0報錯:"mongo"不是內(nèi)部或外部命令,也不是可運(yùn)行的程序或批處理文件
這篇文章主要給大家介紹了關(guān)于解決MongoDB6.0報錯:"mongo"不是內(nèi)部或外部命令,也不是可運(yùn)行的程序或批處理文件的相關(guān)資料,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下2023-05-05MongoDB在不同主機(jī)間復(fù)制數(shù)據(jù)庫和集合的教程
MongoDB自帶了clone一族JavaScript函數(shù)來進(jìn)行數(shù)據(jù)的復(fù)制,這里我們總結(jié)了MongoDB在不同主機(jī)間復(fù)制數(shù)據(jù)庫和集合的教程,列舉出了一些主從復(fù)制操作中常用的重要函數(shù):2016-07-07Mongodb使用索引進(jìn)行查詢優(yōu)化的操作方法
為集合建立合適的索引,能夠有效的減少查詢操作時掃描數(shù)據(jù)的數(shù)量 ,從而提高查詢效率,簡化了mongodb內(nèi)部查詢工作,這篇文章主要介紹了Mongodb使用索引進(jìn)行查詢優(yōu)化的操作方法,需要的朋友可以參考下2024-06-06