2013-11-21 30 views
5

我嘗試從MongoDB中讀取數據。和我有一個問題:db已經存在與不同的情況下其他

Exception in thread "main" com.mongodb.MongoException: db already exists with different case other 

的exeption從這裏拋出:

DBCursor cur[] = new DBCursor[cursorSize]; 
... 
cur[i].hasNext() // Exeption 

是什麼問題?

蒙戈的版本是2.10.1

+0

你正在使用哪個版本? –

+0

@parvin我添加了數據。我用2.10.1 –

+0

? https://groups.google.com/forum/#!topic/mongodb-user/f0uKBkU_7pQ – WiredPrairie

回答

11

此錯誤指示您試圖創建通過情況下,只有從已經存在的數據庫名稱不同的數據庫。例如,如果您已經有一個名爲「test」的數據庫,則會嘗試爲現有名稱創建「測試」,「測試」或大寫或小寫的其他變體。

數據庫名稱用於命名數據​​盤區文件,因此名稱衝突可能會在不區分大小寫的文件系統上發生壞事情。

MongoDB手冊有關於Naming Restrictions的更多詳細信息,包括特定於不同操作系統的大小寫和限制。

useful part of the error message似乎在問題描述中已被省略,但您應該看到作爲此消息的一部分的是現有數據庫的名稱以及被拒絕的新名稱。

相應的MongoDB 2.4服務器code snippet是:

ss << "db already exists with different case other: [" << duplicate << "] me [" << _name << "]"; 
0

我覺得Stennie已經非常明確界定,並解釋了爲什麼你可能會得到這個錯誤。但是,就我而言,我遇到了一個您或其他人可能會遇到的有趣案例。我有一個名爲「HDB」的數據庫,但是當我用「db」:「hdb」(小寫)將我的用戶添加到system.users集合時。因此,我花了一個小時左右的時間試圖查看在登錄時可能出現了什麼問題。所以,如果你得到這個錯誤,請確保你沒有意外地爲db名稱添加較低/不同的大小寫。確認這一點。 1.登錄作爲管理員/默認帳戶下運行

db.system.users.find().pretty(); 

,然後尋找一個與在JSON對象中的「DB」相處這個錯誤的用戶名和比較對你有實際的數據庫。

  • 運行
  • show dbs;

    比較在步驟一個針對在此步驟中看到的分貝的名稱見分貝。 (該命令會顯示你擁有的所有數據庫,但顯然你應該只關心你在第一步中使用/看到的數據)。

    相關問題