我在MongoDB中的一個模式中創建多個複合索引時遇到了一些問題。在使用MongoLab時,由於命名問題,我知道有些索引由於名稱太長而不能創建。所以我懷疑這可能是爲什麼有些不創建Mongoose複合索引未創建(太長)
var Schema = new mongoose.Schema({ ... });
// Created
Schema.index({
one: 1,
three: 1
});
// Not Created
Schema.index({
one: 1,
two: 1,
three: 1,
four: 1,
five: 1,
six: 1,
seven: 1,
eight: 1,
nine: 1,
ten: 1
});
當創建第二個索引時,它是否在屏幕上打印了一些內容? 你怎麼知道第二個索引沒有創建?你有沒有檢查mongo shell? – somallg
@somallg我還沒有添加任何日誌記錄。我確實檢查了mongo shell並且它沒有被創建,所以我怎麼知道。當我手動嘗試創建索引時,我得到以下內容:「由MongoDB生成的默認索引名稱太長,請指定一個自定義名稱。」 –
您的權利對默認索引名稱有限制(https://docs.mongodb.org/manual/reference/limits/#Index-Name-Length) 您可以通過向模式傳遞添加選項來指定自定義名稱。指數 'Schema.index({ 之一:1, 兩種:1, 三:1, 四種:1, 五:1, 六:1, 七:1, 八:1, 9 :1, ten:1 },{name:'my_index_name'});' – somallg