Я новичок в MongoDB / Mon goose и работаю с очень большой базой данных (более 25000 документов). Мне нужно настроить разные запросы: по полям, первые 10 документов, один по идентификатору. Проблема с производительностью - отклик сервера слишком медленный (около 10-15 секунд). Подскажите пожалуйста, как настроить это так, чтобы ответ сервера был быстрым? Зависит ли он только от настроек схемы или может зависеть от других вещей, таких как параметры подключения к базе данных или параметры запроса? PS Запросы должны быть «район» и «местность». Спасибо за любую помощь!
Вот схема:
const mongoose = require('mongoose');
const Schema = mongoose.Schema;
const houseSchema = new Schema({
code: {
type: String,
required: false
},
name: {
type: String,
required: true
},
district: {
type: String,
required: true
},
locality: {
type: String,
required: false
},
recountDate: {
type: Date,
default: Date.now
},
eventDate: {
type: Date,
default: Date.now
},
events: {
type: Array,
default: []
}
});
module.exports = mongoose.model('House', houseSchema);
Параметры подключения:
mongoose.connect(
`mongodb+srv://${process.env.MONGO_USER}:${process.env.MONGO_PASSWORD}@cluster0-vuauc.mongodb.net/${process.env.MONGO_DB}?retryWrites=true&w=majority`,
{
useNewUrlParser: true,
useUnifiedTopology: true
}
).then(() => {
console.log('Connection to database established...')
app.listen(5555);
}).catch(err => {
console.log(err);
});
Запросы выполняются с использованием реле:
query {
viewer {
allPosts (first: 10) {
edges {
node {
id
code
district
locality
recountDate
eventDate
events
}
}
}
}
}