Java 数据库已存在,但情况不同
我尝试从MongoDB读取数据。我有一个问题:Java 数据库已存在,但情况不同,java,mongodb,Java,Mongodb,我尝试从MongoDB读取数据。我有一个问题: Exception in thread "main" com.mongodb.MongoException: db already exists with different case other 从这里抛出的exection: DBCursor cur[] = new DBCursor[cursorSize]; ... cur[i].hasNext() // Exeption 有什么问题 Mongo的版本为2.10.1此错误表示您试图创建的
Exception in thread "main" com.mongodb.MongoException: db already exists with different case other
从这里抛出的exection:
DBCursor cur[] = new DBCursor[cursorSize];
...
cur[i].hasNext() // Exeption
有什么问题
Mongo的版本为2.10.1此错误表示您试图创建的数据库仅与已存在的数据库名称大小写不同。例如,如果您已经有一个名为“test”的数据库,那么在尝试为现有名称创建“test”、“test”或其他大写或小写的变体时会出现此错误 数据库名称用于命名数据块文件,因此名称冲突可能会导致不区分大小写的文件系统发生错误 MongoDB手册提供了更多的详细信息,包括区分大小写和针对不同操作系统的限制 问题描述中似乎省略了,但您应该在该消息中看到的是现有数据库的名称以及被拒绝的新名称 对应的MongoDB 2.4服务器是:
ss我认为Stennie已经很好地定义并解释了为什么你会出现这个错误。然而,在我的案例中,我遇到了一个有趣的案例,您或其他人也可能会遇到。我的数据库名为“HDB”,但当我将我的user添加到system.users集合时,使用“db”:“HDB”(小写)。所以,我花了一个小时左右的时间试图看看在我能够登录时可能出现了什么问题。因此,如果出现此错误,请确保您没有意外地将用户添加为db name的小写/小写。为了证实这一点。
1.以管理员/默认帐户运行的身份登录
db.system.users.find().pretty();
然后在json对象中查找出现此错误的用户名和“db”,并将其与实际数据库进行比较
跑
显示数据库代码>
将您在步骤1中看到的db与在此步骤中看到的db名称进行比较。(该命令将向您显示您拥有的所有数据库,但显然您应该只关注您在第一步中使用/查看的数据库)。您使用的是哪个版本?@parvin i添加了数据。我使用2.10.1@WiredPairie我已经试过了,它没有帮助(重新启动mongod)并确认您没有重复的?
db.system.users.find().pretty();