【发布时间】:2020-06-25 04:31:13
【问题描述】:
我是 MongoDB/Mongoose 的新手,并且使用过一个非常大的数据库(超过 25000 个文档)。我需要配置不同的查询:按字段,前 10 个文档,一个按 id。问题在于性能 - 服务器响应太慢(大约 10-15 秒)。 请告诉我如何配置它以使服务器响应快速? 它是仅依赖于模式设置,还是还可以依赖于其他东西,例如数据库连接参数或查询参数? 附言查询应按“地区”和“地区”。 感谢您的帮助!
这是架构:
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);
});
使用 Relay 执行查询:
query {
viewer {
allPosts (first: 10) {
edges {
node {
id
code
district
locality
recountDate
eventDate
events
}
}
}
}
}
【问题讨论】:
标签: javascript node.js mongodb express mongoose