У меня есть схема Mongoose, которая содержит поле с определенным индексом:
const reportSchema = new mongoose.Schema({
coords: {
type: [Number],
required: true,
index: '2dsphere'
},
…
}
Она хорошо работает на моей локальной машине, поэтому, когда я подключаюсь к MongoDB через оболочку, я получаю этот вывод для db.reports.getIndexes()
:
[
{
"v" : 2,
"key" : {
"_id" : 1
},
"name" : "_id_",
"ns" : "weatherApp.reports"
},
{
"v" : 2,
"key" : {
"coords" : "2dsphere"
},
"name" : "coords_2dsphere",
"ns" : "weatherApp.reports",
"background" : true,
"2dsphereIndexVersion" : 3
}
]
Затем я развертываю это приложение в Heroku и подключаюсь к MongoDB Atlas вместо моей локальной базы данных.Он хорошо работает для сохранения и извлечения данных, но не создает индексы (только по умолчанию):
[
{
"v" : 2,
"key" : {
"_id" : 1
},
"name" : "_id_",
"ns" : "weatherApp.reports"
}
]
Что может вызвать эту проблему?Атлас позволяет создавать индексы через веб-интерфейс, и это хорошо работает, как и создание индексов из оболочки.Но Mongoose почему-то не справляется с этой операцией.