尝试通过猫鼬连接时,我为我找到了解决方案。
!!!首先你需要指定数据库,即使你想连接到默认数据库(默认数据库是'admin'),这很重要!!!在我指定 /admin db 之前,我的数据是从几个 db 混合的。
您需要为正确的数据库指定凭据(作为用户名和密码)(在我的情况下admin
(我以前从未创建过admin
数据库,它是默认数据库))。
但是如果你想连接到另一个数据库怎么办?您应该在连接选项中感受到authSource
方法(在 uri 中指定另一个数据库:mongodb://localhost:27017/database):
mongoose.connect(
mongoUri,
{
authSource: 'admin',
useNewUrlParser: true,
useUnifiedTopology: true,
useCreateIndex: true,
user: config.mongo.username,
pass: config.mongo.password,
serverSelectionTimeoutMS: 5000,
},
(err) => {
if (err != null) {
error('mongoose', err.message);
} else {
info('mongoose', 'mongoose connected');
}
},
)