2014-01-10 62 views
1

我想從mongo數據庫中獲取集合名稱列表。 所以,我在shell腳本使用以下命令:如何從shell腳本中獲取mongo數據庫集合的確切列表

集合= mongo $dbName --eval "db.getCollectionNames()"

此命令的輸出結果是

「的MongoDB外殼版本:2.2.0連接:cm_v2 COL1,COL2, col3,col4「

我想只得到集合名稱,例如:col,col2,col3,col4。 那麼,我應該如何從結果中刪除類似版本的輸出。

回答

4

使用--quiet標誌

collections=mongo $dbName --quiet --eval "db.getCollectionNames()" 
+0

感謝您的解決方案:) –

2

如果你想獲得集合數組,你可以遍歷使用這樣的(如果你在集合名稱有空格,雖然這可能會咬你):

collections=`echo "show collections" | mongo $dbName --quiet` 


for collection in $collections; 
do 
    echo "$collection" 
done 

這將返回帶引號的名稱的JSON格式的列表,這是不是bash腳本

真正有用
mongo $dbName --quiet --eval "db.getCollectionNames()" 

[ 
    "collection1", 
    "collection2" 
] 
0

使用如下:

DATABASE_COLLECTIONS=$(mongo $dbName --quiet --eval "db.getCollectionNames().join('')" | sed 's/,/ /g') 

然後你可以

for col in $DATABASE_COLLECTIONS; do 
    echo $col 
done 
0

達沃爾盧奇克answer批量版本:

for /f "tokens=* usebackq" %%c in (
    `echo show collections ^| mongo "host:port/dbname" --quiet` 
) do (
    echo %%c 
) 
相關問題