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文檔中明確的提出來,通配符索引和通配符文本索引,是兩個完全不同的索引。那通配符文本索引到底是什么樣的方式來運作,本文繼續(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)文章
MongoDB?插入操作機(jī)制詳解之insert()?與?nInserted?的行為剖析(推薦)
本文將以一段常見的MongoDB?Shell腳本為切入點,深入探討insert()?方法的工作機(jī)制、返回值含義,并對比insertMany()的差異,幫助開發(fā)者避免常見誤解,寫出更高效、更可控的數(shù)據(jù)寫入代碼,感興趣的朋友一起看看吧2025-11-11
MongoDB數(shù)據(jù)庫條件查詢技巧總結(jié)
查詢是數(shù)據(jù)庫的基本操作之一,下面這篇文章主要給大家介紹了關(guān)于MongoDB數(shù)據(jù)庫條件查詢技巧的相關(guān)資料,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-06-06
mongodb主從復(fù)制_動力節(jié)點Java學(xué)院整理
這篇文章主要為大家詳細(xì)介紹了mongodb主從復(fù)制的相關(guān)資料,討論mongodb的部署技術(shù),具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-08-08
MongoDB數(shù)據(jù)庫設(shè)置賬號密碼完整步驟
MongoDB這工具很好用的,頁面美觀,設(shè)置賬號密碼也必不可少,下面這篇文章主要給大家介紹了關(guān)于MongoDB數(shù)據(jù)庫設(shè)置賬號密碼的完整步驟,文中給出了詳細(xì)的實例代碼,需要的朋友可以參考下2023-05-05
分布式文檔存儲數(shù)據(jù)庫之MongoDB備份與恢復(fù)的實踐詳解
這篇文章主要介紹了分布式文檔存儲數(shù)據(jù)庫之MongoDB備份與恢復(fù),本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-11-11
在 Fedora 上安裝 MongoDB 服務(wù)器的方法教程
Mongo是一個高性能、開源、無模式的、面向文檔的數(shù)據(jù)庫,它是最受歡迎的 NoSQL 數(shù)據(jù)庫之一。這篇文章主要介紹了在 Fedora 上安裝 MongoDB 服務(wù)器的方法,需要的朋友可以參考下2020-03-03
Mongodb?刪除集合數(shù)據(jù)后釋放磁盤空間的操作步驟
Mongodb當(dāng)集合數(shù)據(jù)占用比較多,對其進(jìn)行清理后,集合存儲空間下降,但磁盤空間并沒釋放,對于具有活動更新的集合來說,有一些可重用的空間是正常的,過多的可重用空間通常是刪除大量數(shù)據(jù)的結(jié)果,這篇文章主要介紹了Mongodb?刪除集合數(shù)據(jù)后如何釋放磁盤空間,需要的朋友可以參考下2023-11-11
Mongodb數(shù)據(jù)庫兩種啟動方法小結(jié)
MongoDB是一種開源的服務(wù)器端NoSQL數(shù)據(jù)庫管理系統(tǒng),它提供了一種靈活的框架,可以快速地存儲、處理和管理大量的數(shù)據(jù),這篇文章主要給大家介紹了關(guān)于Mongodb數(shù)據(jù)庫兩種啟動方法的相關(guān)資料,需要的朋友可以參考下2023-12-12

