簡體   English   中英

如何更改mongodb索引名稱

[英]How to change mongodb index name

這是我使用的索引的名稱

LongitudeLatitude_indexContents_1_prominent_-1

-1th的問題是有問題的,並自動生成。 我想將其更改為LongitudeLatitude_indexContents_1_prominent_min1

或者其他的東西

索引需要一段時間。 所以我寧願只是更改索引的名稱。

例如,

如果我做

db.tablebusiness.find({ "LongitudeLatitude" : { "$nearSphere" : [106.772835, -6.186753], "$maxDistance" : 0.044983732050783008 }, "Prominent" : { "$gte" : 15 }, "indexContents" : { "$all" : [/^warung/] } }).hint("LongitudeLatitude_indexContents_1_Prominent_-1").limit(50).explain();

我懂了

> ).hint("LongitudeLatitude_indexContents_1_Prominent_-1").limit(50).explain();
Thu Sep 06 11:01:51 uncaught exception: error: { "$err" : "bad hint", "code" : 1
0113 }

你為什么要使用hint() 那一定是我見過的最不可靠的證明代碼。 如果您的查詢沒有有效地使用索引,那么您應該真正更改查詢或添加另一個索引以使查詢在索引上運行。 強制MongoDB使用無法找到的索引實際上可能會進一步降低查詢速度,因為它將嘗試使用不提供快捷方式的b樹。

體現您的查詢:

db.tablebusiness.find({ "LongitudeLatitude" : { "$nearSphere" : [106.772835, -6.186753], "$maxDistance" : 0.044983732050783008 }, "Prominent" : { "$gte" : 15 }, "indexContents" : { "$all" : [/^warung/] } })

將使用您創建的索引,而無需使用hint() 如果您對這一查詢的索引更好地提高了一天的查詢效率,則由於使用了新的索引,因此使用hint()將使此查詢不再更快。 不僅如此,您還必須在所有代碼中更改索引名稱。

至於更改索引的名稱:我認為您必須先刪除它,然后重新索引以創建自己名稱的新索引(盡管如@Thilo所述,自命名索引將被刪除)。

.hint(“ LongitudeLatitude_indexContents_1_Prominent_-1”)

應該

.hint({LongitudeLatitude_indexContents:1,Prominent:-1})

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM