2016-12-06 88 views
0

我想列出Monogodb中的所有數據庫並輸出到txt文件,但它不起作用。如何將結果輸出到monogodb中的文件

mongo 127.0.0.1/test -eval 'var c= show databases;' >>db_list.txt 

錯誤消息是

MongoDB shell version: 2.6.12 
connecting to: 127.0.0.1/test 
2016-12-06T12:12:32.456-0700 SyntaxError: Unexpected identifier 

有誰知道如何使這項工作。我感謝任何幫助。

+0

s如果這有助於http://stackoverflow.com/questions/22565231/printing-mongo-query-output-to-a-file-while-in-the-mongo-shell –

+0

也是這個https://docs.mongodb。 com/manual/tutorial/write-scripts-for-the-mongo-shell /因爲你應該使用js方法而不是普通的mongo命令。因此顯示數據庫應該用db.adminCommand('listDatabases')替換 –

+0

謝謝,在使用db.adminCommand('listDatabases')後它不起作用。錯誤是listdatabases沒有定義。 – user7070824

回答

2

要直接在shell上使用eval和list數據庫,以下查詢應該會有所幫助。

mongo test --eval "printjson(db.adminCommand('listDatabases'))" 
MongoDB shell version: 3.2.10 
connecting to: test 
{ 
     "databases" : [ 
       { 
         "name" : "local", 
         "sizeOnDisk" : 73728, 
         "empty" : false 
       }, 
       { 
         "name" : "m034", 
         "sizeOnDisk" : 11911168, 
         "empty" : false 
       }, 
       { 
         "name" : "test", 
         "sizeOnDisk" : 536576, 
         "empty" : false 
       } 
     ], 
     "totalSize" : 12521472, 
     "ok" : 1 
} 

這將列出特定DB中的所有集合名稱。

mongo test --eval "printjson(db.getCollectionNames())" 
MongoDB shell version: 3.2.10 
connecting to: test 
[ 
     "aaa", 
     "areamodel", 
     "email", 
     "hex", 
     "key", 
     "mel", 
     "multi", 
     "ques", 
     "rich" 
] 

樣本執行參考(截圖) A sample execution for reference

+0

謝謝,它在Linux上工作。命令是mongo 127.0.0.1 -eval「var c = printjson(db.adminCommand('listDatabases'))」>> db_list.txt。 @satish chennupati,非常感謝。 – user7070824

+0

高興地幫助我的朋友。 :D –

+0

我不喜歡在答案中使用圖像。它根本不會增加任何價值。相反,你應該複製/粘貼你的代碼。 – styvane

2

而是測試你可以簡單地說, 蒙戈DB_NAME query.js> out.json

這裏query.js包含任何查詢如: printjson(db.adminCommand('listDatabases'))

+0

謝謝@Shishir Sonekar。 – user7070824

相關問題