国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院

首頁 > 數據庫 > MongoDB > 正文

MongoDB通配符索引如何用?

2024-09-07 00:22:36
字體:
來源:轉載
供稿:網友
       這篇文章給大家介紹的是關于MongoDB通配符索引的用法內容,小編認為是比較實用,因此分享給大家作參考,有這方面學習需要的朋友可以看看。
 
       MongoDB在4.2 版本推出了Wildcard Indexes,究竟什么是Wildcard Indexes以及Wildcard Indexes適合哪些場景本文結合官方文檔以及實際測試進行簡單概述。
 
       1、通配符索引示例
 
       因為MongoDB是dynamic schemas,所以應用是可以查詢任何已知字段或者隨機字段的。假設(此假設案例摘自官方文檔),集合colA的UserMetadata字段包含如下數據:
 
{ "userMetadata" : { "likes" : [ "dogs", "cats" ] } }
{ "userMetadata" : { "dislikes" : "pickles" } }
{ "userMetadata" : { "age" : 45 } }
{ "userMetadata" : "inactive" }
       但是在查詢的時候可能是如下語句:
 
db.colA.find({ "userMeta2
通配符索引的形式data.likes" : "dogs" })
db.colA.find({ "userMetadata.dislikes" : "pickles" })
db.colA.find({ "userMetadata.age" : { $gt : 30 } })
db.colA.find({ "userMetadata" : "inactive" })
        2、通配符索引的形式
 
       單字段通配符索引
 
{
 "_id" : ObjectId("5ee2df16911d8dfaa91520b4"),
 "product_name" : "Spy Coat",
 "product_attributes" : {
 "material" : [
 "Tweed",
 "Wool",
 "Leather"
 ],
 "size" : {
 "length" : 72,
 "units" : "inches"
 }
 }
}
{
 "_id" : ObjectId("5ee2df30911d8dfaa91520b5"),
 "product_name" : "Spy Pen",
 "product_attributes" : {
 "colors" : [
 "Blue",
 "Black"
 ],
 "secret_feature" : {
 "name" : "laser",
 "power" : "1000",
 "units" : "watts"
 }
 }
}
如果數據結構是上面這樣的,其中product_attributes 屬性包含任何的結構。
 
        全字段的通配符索引
 
       可以通過下面的語句創建一個索引,索引中包含集合中的所有字段,但是不包括_id(如果想包含_id可以通過wildcardProjection 來設置),如果集合中的字段包含數組或者嵌套對象的話,那么會迭代數組或者嵌套對象并把值放到索引中。
 
Db.product_catalog.createIndex({“$**”:1})  
       給每個文檔添加一個address的字段。
 
7777:PRIMARY> db.product_catalog.find().pretty()
{
 "_id" : ObjectId("5ee2df16911d8dfaa91520b4"),
 "product_name" : "Spy Coat",
 "product_attributes" : {
 "material" : [
 "Tweed",
 "Wool",
 "Leather"
 ],
 "size" : {
 "length" : 72,
 "units" : "inches"
 }
 },
 "address" : "Beijing"
}
{
 "_id" : ObjectId("5ee2df30911d8dfaa91520b5"),
 "product_name" : "Spy Pen",
 "product_attributes" : {
 "colors" : [
 "Blue",
 "Black"
 ],
 "secret_feature" : {
 "name" : "laser",
 "power" : "1000",
 "units" : "watts"
 }
 },
 "address" : "Tianjin"
}
 
db.product_catalog.find({"product_name":"Spy Coat","address":"nanji","product_attributes.colors":"Blue"})
 
       在全字段通配符索引的基礎上可以明確包含哪些或者不包含哪些字段到通配符索引中,只能是在全字段通配符索引的基礎上,單字段的是不可以的:
 
       在全字段的基礎上創建一個明確包含哪些字段的索引:
 
db.collection.createIndex(
 { "$**" : 1 },
 { "wildcardProjection" :
 { "fieldA" : 1, "fieldB.fieldC" : 1 }
 }
)
       注意:通配符索引不支持在使用wildcardProjection的時候混合使用包含和排除語句,除了明確指定包含_id字段的時候。
 
       在全字段的基礎上創建一個明確不包含哪些字段的索引:
 
db.collection.createIndex(
 { "$**" : 1 },
 { "wildcardProjection" :
 { "fieldA" : 0, "fieldB.fieldC" : 0 }
 }
)
       3、通配符索引的行為
 
       通配符索引的行為根據其字段類型不同而有所不同。
 
字段為對象
如果是對象的話,會將對象中的內容存儲到索引中,通配符索引會把對象中的所有嵌套對象加載到索引中。
字段為數組
如果是數組的話,通配符索引遍歷數組并且將每個元素都存儲到索引中。
如果數組中的元素是一個對象的話,通配符索引把對象中的內容加載到索引中,像上面的加載對象一樣。
如果數組中的元素是一個數組的話(就是多維數組),通配符索引并不迭代嵌套數組,相反是把整個嵌套數組作為一個值來看。
其他類型
把值記錄到數組中。
通配符索引會持續迭代任何的嵌套對象或者數組直到最底層(就是不能在迭代為止),然后它會索引全路徑。
 
       如果超過了8個以上顯示數組索引的話MongoDB 會考慮另外的索引或者執行全集合掃描。如下結構:
 
{
 "parentObject" : {
 "nestedArray" : [
 "elementOne",
 {
  "deeplyNestedArray" : [ "elementTwo" ]
 }
 ]
 }
}
       請注意,通配符索引本身對索引文檔時遍歷文檔的深度沒有任何限制;該限制僅適用于顯式指定精確數組索引的查詢。通過發出沒有顯式數組索引的相同查詢,MongoDB可以選擇通配符索引來回答查詢。
 
       4、通配符索引的限制
 
       1.首先通配符索引是一個稀疏索引,只存放存在的字段在索引里面,不存在的不存放,也就是說當你使用{$exists:false}的時候,是不會走索引的,是全集合掃描。
 
       db.test_new_wildidx.find({"block.attr":{$exists:false}})
 
       db.test_new_wildidx.find({"block.attr":{$exists:true}})  但是支持true的。
 
       2.通配符索引不支持直接等于/不等于一個對象或者數組。
 
       通配符索引會將對象或者數組中的元素加載到索引中,而不是整體放到索引中。故通配符索引不支持直接用文檔或者數組來匹配。
 
        3. 通配符索引支持如下索引類型或者或者屬性:
 
Compound
TTL
Text
2d (Geospatial)
2dsphere (Geospatial)
Hashed
Unique
 
       4.通配符索引不支持文檔中的數組$ne null這種。其實不光是數組,別的字段也同樣,只要是$ne都不會使用通配符索引。

(編輯:武林網)

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院
国产美女视频一区二区三区| 97影院秋霞午夜在线观看| 国产超碰在线观看| 国产精品第八页| 国产成a人亚洲精v品| 在线国产一区二区三区| 午夜在线观看91| 国内自拍视频在线看免费观看| 国产麻豆一区二区三区精品 | 青青草视频在线免费观看| 免费在线黄色网址| 国产馆av播放| 黄色片大全在线观看| 国产高潮av| 国产麻豆精品高清在线播放| 国产一区二区三区福利| www.色婷婷| 精品国内一区二区三区免费视频| 免费久久网站| 亚洲综合在线不卡| 国产精品777一区二区| 久久久久久国产视频| 亚洲最新永久观看在线| 国产区视频在线| 国产剧情av在线| 欧美性受xxxx免费视频| 国产爆初菊在线观看免费视频网站 | 国产成人精品久久一区二区小说| 日本一级理论片在线大全| 国产色a在线| 最新亚洲精品国自产在线观看| 亚洲高清在线免费| 伊人免费在线| 99中文字幕一区| 在线观看中文字幕| 伊人av免费在线观看| 在线观看中文| 精品无人乱码| 99福利在线| 在线观看午夜av| 亚洲欧洲成人| 精品入口麻豆传煤| 国产高清免费在线播放| 国产精品久久久高清免费| 中文字幕久热在线精品| 国产亚洲精品久久久网站好莱| 国产女人伦码一区二区三区不卡| 久草一本av| 国产小视频在线高清播放| 国产视频2区| 国产精品视频一区二区免费不卡| 国产黄色免费网| av亚洲在线| 久热中文字幕在线观看| 好男人社区在线视频| 中文字幕在线观看日本| 国产免费av高清在线| 国产一二在线观看| 精品视频在线一区二区| av在线免费播放网站| 天堂资源最新版在线视频观看免费网| 国产一二三区精品视频| 在线观看av的网站| 国产免费av在线| 精品国产美女福利到在线不卡| 在线一区观看| 国产毛片视频| 尤物在线视频观看| 天天av综合网| 亚洲精品天堂在线| 国产精品外围在线观看| 国产精品二线| 欧美日韩久久中文字幕| 国产日韩欧美精品一区二区三区| 永久免费在线观看| 国产特级淫片免费看| www.99色.com| 精品一区二区三区在线观看l| 九九精品视频在线观看九九| 精品视频麻豆入口| 中文字幕毛片| 天天av天天爱| 久热中文字幕精品视频在线| 国产激情视频网址| 国产视频97| 国产一级片在线播放| eeuss影影院www在线播放| 国产亚洲精品久久久久久移动网络| 四虎精品成人a在线观看| 国产精品久久久高清免费| 黄色免费av| 黄色片大全在线观看| а天堂8中文最新版在线官网| 99在线欧洲视频| 99久久精品免费观看国产| 国产成人精品男人的天堂538| 国产一二三区在线视频| 日本中文字幕在线播放| 久久99国产视频| 九九热视频免费观看| 黄色av电影在线播放| 天天干天天操天天爽| av中文在线| 欧美日韩国产亚洲沙发| 本道综合精品| 蜜桃视频网站在线| 国产乱子伦三级在线播放| 久精品在线观看| 成人免费一区二区三区牛牛| 狠狠色丁香婷婷| 中文字幕在线永久在线视频| 国产日产一区二区| 99热免费观看| 久久久久久五月天久久久久久久久| 青青草中文字幕| 国产美女被草| 国产三区四区在线观看| 国产变态拳头交视频一区二区| 国产激情网址| 青青草在线播放| 中文字幕在线免费视频| 9999在线视频| 国产在线高清理伦片a| 国产日本视频| 日本不卡影院| 丁香视频免费观看| 91涩漫在线观看c| 国产男女猛烈无遮挡免费视频| 国产精品va在线观看视色| 亚洲成人福利| 中文字幕日本三级| 亚洲欧洲成人| 中文字幕免费中文| 日本18视频网站| 国产精品黄页网站在线播放免费| av在线你懂的| 91久久精品国产性色| 国产女人在线观看| 青娱乐在线视频观看| 在线中文字幕资源| 国产亚洲精品久久久久久移动网络| 在线观看精品视频一区二区三区 | 免费三级毛片| 国产成人亚洲综合小说区| 免费在线播放av| 91xx在线观看| 国产精品理人伦一区二区三区| 久久久久久77777| 香蕉视频免费在线播放| 97视频网站| 97国产视频| 在线中文av| 91九色在线看| 精品无吗乱吗av国产爱色| 国产精品xxx电影| 国产精品视频流白浆免费视频| 国产一区二区三区美女秒播 | 国产小视频福利在线| 成av人免费青青久| 四虎一区二区三区| av手机免费观看| 日本调教视频在线观看| 全网国产福利在线播放| 青青草原国产在线观看| а天堂8中文最新版在线官网| 99爱视频在线观看| 99在线免费视频| 天天插天天狠天天透| 青青青国产视频| 久久五月精品| 国产精品一区二三区| 国产精品美女一区二区三区四区| 国产黄色免费网| 伊人狠狠av| 天天草天天干| 国产免费黄色| 国产精品久久麻豆| www.99av| 国产精品视频一区二区免费不卡| 精品国产免费第一区二区| 欧美色第一页| 国产高清自拍视频在线观看 | 日p在线观看| 丁香花高清在线观看完整版| 国产女主播在线| av在线免费播放网站| 麻豆国产在线视频| 国产激情网址| 九九热视频在线观看| 精品久久九九| 国产69久久| 欧美黑人乱大交ⅹxxxxx| 国产精品久久久高清免费| 人人干人人插| 国产不卡精品一区二区三区| 免费高清av| 夜夜操天天干| 国产a国产a国产a| 国产免费黄网站| 青青草免费在线视频|