我需要在一個大的MongoDB集合中構建五個索引。我熟悉ensureIndex操作,但我不知道用單個命令創建全部五個索引的方法。 MongoDB中可以創建批量索引嗎?一次構建多個索引
Q
一次構建多個索引
6
A
回答
-1
我認爲這是不可能的使用單一的命令,但你可以創建自己的腳本,這些腳本都會執行相同的操作。如果你的集合規模很大,那麼我建議你用背景分別建立索引,以減少任何鎖定問題的機會。
db.collection.ensureIndex({ a: 1 }, { background: true })
0
至於現在還沒有解決方案。
後臺將阻止數據庫鎖定並允許執行其他操作。但要運行這些操作,您必須打開新的mongo shell,或者使用您選擇的語言(如js)異步運行它們。
但是,如果您需要強大的一致性並且不需要後臺索引構建......您可能需要等待MongoDB本機解決方案來。
2
你錯了,蒙戈有createIndexes命令,因爲2.6(2014之前發佈)
https://docs.mongodb.com/v3.0/reference/command/createIndexes/
文件說,它需要一個通過收集,所以它應該是更快的約5倍。
3
這在shell中非常簡單,有一個createIndexes
集合的擴展,您只需傳入想要創建索引的鍵。
db.test.createIndexes([
{ "a" : 1 },
{ "b" : 1 },
{ "c" : 1 },
{ "d" : 1 },
{ "e" : 1 }
]);
這將然後給我們以下
> db.test.getIndexes()
[
{
"v" : 2,
"key" : {
"_id" : 1
},
"name" : "_id_",
"ns" : "test.test"
},
{
"v" : 2,
"key" : {
"a" : 1
},
"name" : "a_1",
"ns" : "test.test"
},
{
"v" : 2,
"key" : {
"b" : 1
},
"name" : "b_1",
"ns" : "test.test"
},
{
"v" : 2,
"key" : {
"c" : 1
},
"name" : "c_1",
"ns" : "test.test"
},
{
"v" : 2,
"key" : {
"d" : 1
},
"name" : "d_1",
"ns" : "test.test"
},
{
"v" : 2,
"key" : {
"e" : 1
},
"name" : "e_1",
"ns" : "test.test"
}
]
>
相關問題
- 1. 構建一個從每個索引值的多個附加
- 2. GNU一次構建多個文件
- 3. 從一個列表中一次分配多個索引
- 4. MySQL索引結構:多個或單個索引?
- 5. 從多索引csv文件創建一個多重索引熊貓數據框
- 6. 多於一個索引
- 7. MongoDB多個單一索引
- 8. 可可NSIndexSet:多重索引。如何創建索引集,多個索引?
- 9. 一種多索引,其中一個索引是整個集合
- 10. 如何使多個.NET項目複製只引用一次在構建
- 11. Ravendb動態構建索引
- 12. 多列索引VS多個索引
- 13. 創建幾個部分索引,只掃描一次(Postgresql)?
- 14. 在一個一對多的關係上創建列索引
- 15. Magento,索引問題(一個或多個索引無效)
- 16. mysql:多個索引的建議
- 17. 是否可以爲多個列創建一個索引? hiberanate
- 18. 如何創建一個包含多個索引的std :: map?
- 19. 構建一個全文搜索引擎:從哪裏開始
- 20. 構建一個rails窗體來過濾索引頁面?
- 21. C程序 - 從另一個文件構建索引文件
- 22. 如何找到一個索引構建操作
- 23. 幫助構建一個基本的PHP搜索引擎
- 24. 如何爲R包預構建一個小插曲索引?
- 25. BitBucket Wiki:創建一個層次結構?
- 26. 一次構建多個解決方案平臺?
- 27. eclipse C++一次排除構建多個文件?
- 28. 如何使用Albacore一次構建多個項目?
- 29. 如何使用CodeIgniter QueryBuilder一次構建多個查詢?
- 30. 如何使用CMake一次構建多個配置?