尽管允许所有 IP 地址访问,但无法连接到 MongoDB Atlas

Cannot connect to MongoDB Atlas despite allowing all IP address to access

出于某种原因,我无法访问 MongoDB 数据库。我有 运行 通过常见的嫌疑人,例如删除密码周围的 <> 括号,还使我的集群可以从任何 IP 地址访问。 我正在尝试连接到 mongoDB 'sample_mflix' 提供的示例数据库之一,我不确定这是否是一个问题。在本教程中,我指的是 https://www.youtube.com/watch?v=n1mdAPFq2Os&t=887s 创建者将数据库保留为 'test' 并且它有效,但我尝试了这个但也失败了。 任何帮助将不胜感激。

const { ApolloServer } = require('apollo-server');
const gql = require('graphql-tag');
const mongoose = require ('mongoose');

const { MONGODB } = require('./config.js');

const typeDefs = gql`
    type Query{
        sayHi: String!
    }
`;
//each query has resolver
const resolvers = {
    Query: {
        sayHi: () => 'Hello World!!!'
    }   
};

const server = new ApolloServer({
    typeDefs,
    resolvers
});

mongoose.connect('mongodb+srv://MYUSERNAME:MYPASSWORD@cluster0.j2bnm.mongodb.net/**sSAMPLEDATABASEgivenbyMongoDB**?retryWrites=true&w=majority', {useNewUrlParser: true})
    .then(() => {
        console.log('MongoDB connected');
        return server.listen({ port: 5000 });
    })
    .then(res => {
        console.log(`Server running at ${res.url}`);
    });

如果您的密码包含 non-alphanumeric 字符,例如 @、# 和 &,您需要确保通过 encodeURIComponent 传递密码,否则 mongodb 可能会误解密码并因此拒绝它。

MYUSERNAME:encodeURIComponent(MYPASSWORD)

我不确定发生了什么,但我什么也没做,突然它起作用了