gpt4 book ai didi

java - 无法插入新创建的 mongolab 数据库

转载 作者:行者123 更新时间:2023-12-01 18:34:45 26 4
gpt4 key购买 nike

我在将文档插入 mongoLab 实例时遇到问题。

我正在使用以下命令连接到实例:

MongoClient client = new MongoClient(new MongoClientURI(uri));

uri 如下所示:

mongodb://heroku_app1234:random_password@ds029017.mongolab.com:29017/heroku_app1234

用户heroku_app1234的状态readOnlyfalse

并像这样插入我的文档:

Jongo jongo = new Jongo(client.getDB("myDb"));
MongoCollection collection = jongo.getCollection("myCollection");
collection.save(someBean);
client.close();

并且服务器因以下异常而崩溃:

Caused by: com.mongodb.WriteConcernException: { "serverUsed" : "ds029017.mongolab.com:29017" , "err" : "not authorized for insert on myDb.myCollection" , "code" : 16544 , "n" : 0 , "lastOp" : { "$ts" : 0 , "$inc" : 0} , "connectionId" : 21382 , "ok" : 1.0} 

最佳答案

您似乎正在连接并验证一个数据库 (heroku_app1234),但随后切换到另一个数据库 (myDB)。结果,您收到错误未授权在 myDb.myCollection 上插入

当您获取数据库以传递到 Jongo() 构造函数时,您应该确保获取与 URI 中使用的数据库相同的数据库。看来您正在使用 Java。如果是这样,对您的代码的这种调整可能对您有用:

MongoClientUri uri = new MongoClientUri("mongodb://heroku_app1234:random_password@ds029017.mongolab.com:29017/heroku_app1234");
MongoClient client = new MongoClient(uri);
Jongo jongo = new Jongo(client.getDB(uri.getDatabase()));
MongoCollection collection = jongo.getCollection("myCollection");
collection.save(someBean);
client.close();

我们的Language Center中有一些基本的连接示例,其中包括 Java 的一个您可以随意使用。

// Standard URI format: mongodb://[dbuser:dbpassword@]host:port/dbname
MongoClientURI uri = new MongoClientURI("mongodb://user:pass@host:port/db");
MongoClient client = new MongoClient(uri);
DB db = client.getDB(uri.getDatabase());

关于java - 无法插入新创建的 mongolab 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22535208/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com