【问题标题】:How do I successfully connect and test the connection using Mongo DB Sync Driver?如何使用 Mongodb Sync Driver 成功连接和测试连接?
【发布时间】:2021-12-20 07:40:21
【问题描述】:

我在连接到 MongoDB Atlas 时遇到问题。我正在按照 MongoDB 提供的教程进行操作,但无法正常工作。

驱动:https://mongodb.github.io/mongo-java-driver/4.3/(最新版)

我正在使用以下代码连接到 MongoDB:

ConnectionString mongoConn = new ConnectionString(
                "mongodb+srv://user:password@cluster0.xdibk.mongodb.net/myFirstDatabase?retry" +
                "Writes=true&w=majority"
        );


 MongoClient mongoClient = MongoClients.create(mongoConn);

上面的代码可以工作,但除了在控制台中显示一些信息之外什么都不做

我没有发现它有什么用,所以我使用以下方法将其关闭:

Logger.getLogger("org.mongodb.driver").setLevel(Level.WARNING);

然后我决定尝试插入一个集合来测试连接,看看是否真的保存了任何东西:

MongoCollection<Document> collection = database.getCollection("test");
Document document = new Document("title", "Test")
               .append("description", "Mongo DB connection and insertion test");

 collection.insertOne(document);

没有错误,但也没有插入任何内容。

我什至尝试将所有代码放在try-catch 中,但仍然没有错误,除非我删除用户或密码时它会抛出一个异常,告诉我需要密码。

显然一切正常,我的用户名和密码以及连接到 MondoDB 的链接都是正确的,我看不出有什么问题。

问题:一切似乎都设置正确,但似乎没有连接,我看不出它为什么不工作。

所以我的问题是:

如何使用 MongoDB Driver Sync 成功连接到 Mongo DB,我如何知道它已连接,因为它没有给我任何错误?

【问题讨论】:

  • 更密切地关注您链接到的文档,同时阅读Connection String URI Format。您将myFirstDatabase 指定为身份验证数据库;您需要在按照here 所述连接后切换数据库。通常您不指定 auth 数据库,默认的 admin 很好,因此请将该部分从连接字符串中删除。 myFirstDatabase 将成为 myFirstCollection 的一个很好的测试数据库但是:)
  • 哇,我不敢相信我花了一整天的时间来尝试这样做......非常感谢。我想我对 MongoDB 给我的连接字符串示例感到困惑,当我点击“Connect”时,连接字符串中有“MyFirstDatabase”,我不知何故认为这是我要处理的数据库而不是 auth 数据库。再次感谢您。
  • 我自己也犯了这个错误,所以对我来说非常熟悉......很高兴我能提供帮助。我已经发布了我的评论作为完整性的答案;如果您认为合适,请接受。

标签: java mongodb


【解决方案1】:

您将您的数据库指定为身份验证数据库。根据 MongoDB 参考中的Connection String URI Format page,URI 格式为:

mongodb://[username:password@]host1[:port1][,...hostN[:portN]][/[defaultauthdb][?options]]

通常admin 用作身份验证数据库,因此您的ConnectionString 将是:

ConnectionString mongoConn = new ConnectionString(
    "mongodb+srv://user:password@cluster0.xdibk.mongodb.net/admin?retryWrites=true&w=majority");

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-07-04
    • 1970-01-01
    • 2013-08-05
    • 1970-01-01
    • 1970-01-01
    • 2017-05-04
    • 2018-06-26
    相关资源
    最近更新 更多