com.mongodb.MongoQueryException:查询失败,错误代码为13,并显示错误消息“命令find需要身份验证”
如何在java中使用密码创建mongo客户端。
我知道有这样的方法:
public MongoClient(final ServerAddress addr, final List<MongoCredential> credentialsList);
但是它被显示为已弃用,还有另一个方法需要MongoClientOptions:
public MongoClient(final ServerAddress addr, final MongoCredential credential, final MongoClientOptions options)
但我没有任何选项可以发送。那么,有没有什么方法可以使用密码在java中创建mongo客户端呢?
2条答案
按热度按时间4ioopgfo1#
要执行find命令,您需要首先通过mongo进行身份验证。以下是如何执行身份验证的示例:
这对你来说应该没问题。
您可以查看本文中的示例代码:https://www.mkyong.com/mongodb/java-authentication-access-to-mongodb/
当使用mongo-java-driver时,以下是合适的:- 注意,这里不再使用已弃用的方法,而是将writeconcern设置为Journaled(推荐使用)
6yoyoihd2#
如果您使用的是MongoDB Atlas,那么您必须为db用户的给定Role给予对DB的访问权限。
这个问题主要是因为没有给予用户访问它的权限。