2014-11-04 68 views
0

我實際上在探索MongoDB和mapReduce,但是我遇到了問題。 mongodb的安裝成功。 之後,我試圖import a json文件調用終端蒙戈之前鍵入這兩個命令(我工作在Ubuntu 12.04 LTS):MongoDB - db在mongoimport後不顯示任何集合

$ wget http://media.mongodb.org/zips.json 

$ mongoimport --db mapreduce --collection zips --file zips.json 

然後我打電話命令:

$ mongo 

我得到了這些警告:

MongoDB shell version: 2.6.5 
connecting to: test 
Server has startup warnings: 
2014-11-04T20:15:12.280+0100 [initandlisten] 
2014-11-04T20:15:12.280+0100 [initandlisten] ** NOTE: This is a 32 bit MongoDB binary.  
2014-11-04T20:15:12.280+0100 [initandlisten] **  32 bit builds are limited to less than 2GB of data (or less with --journal). 
2014-11-04T20:15:12.280+0100 [initandlisten] **  Note that journaling defaults to off for 32 bit and is currently off. 
2014-11-04T20:15:12.280+0100 [initandlisten] **  See http://dochub.mongodb.org/core/32bit 
2014-11-04T20:15:12.280+0100 [initandlisten] 

,現在當我想要展示的收藏品中,我通常鍵入:

秀收藏

但它並不顯示任何集合。就像這樣:

秀收藏

>

當我鍵入

顯示DBS

我得到了終端:

admin  (empty)  
local  0.078GB  
mapreduce 0.078GB  
test  (empty)  
zips  (empty) 

這意味着數據庫中的zip文件是空的,但是當我打開它時,文件中有很多文件。

任何人都可以幫助我嗎? 在此先感謝。

回答

1
mongoimport --db mapreduce --collection zips --file zips.json 

該命令將導入從文件zips.json數據到一個名爲zips收集駐留在mapreduce數據庫。

現在,當我想顯示集合,我通常鍵入:顯示集合但它不顯示任何集合。就像這樣:

默認情況下,當你打開一個新的mongo客戶端,它使用test數據庫。即完成所有操作而不切換數據庫將在test數據庫上執行。

由於mongoimport命令執行mapreduce數據庫的操作,而不是在默認test數據庫,你看到test數據庫中沒有藏品。

當你做show dbs時,它列出了所有存在的數據庫。您可以在此處看到新的mapreduce數據庫。您在此處看到的zips是您可能意外創建的數據庫,而不是您將數據導入到的集合。

這意味着數據庫拉鍊是空的,但是當我打開它,有很多的文檔。

是的,數據庫命名zips是空的。你正在尋找的是zips集合。 因此,您需要發出命令:use mapreduce;,先切換到mapreduce數據庫。在那裏,當您發出show collections時,您可以看到帶有導入數據的zips集合。

+0

非常感謝@BatScream。經過大量嘗試後,我也意識到改變數據庫是顯而易見的,因爲導入是指數據庫mapreduce而不是zip。也感謝你的解釋。我希望這可以幫助其他人。謝謝 – user2880632 2014-11-04 22:58:25

0

這是@ BatScream.I的一個很好的解釋。我想給@BatScream添加一點點。

您試圖爲低於進口:

$ mongoimport --db mapreduce --collection zips --file zips.json 

所以你.json文件將被導入到zips集合中的mapreduce database.To查看導入的數據給下面的命令:

>show dbs 
>use mapreduce 
>show collections 
>db.zips.find() 

現在導入的數據將出現在zips集合中。

爲什麼這些警告?

32位MongoDB進程被限制爲大約2 GB的數據。原因是MongoDB存儲引擎使用內存映射文件來提高性能,所以它不可能使用日誌很多。默認情況下,日誌將在32bit中關閉。不要禁用mongodb中的日誌記錄。不要使用32位生成要了解很多關於日記的內容,請查看for a clear idea

希望這有助於!