[英]How to get exact list of collections form mongo database in shell script
我想從mongo數據庫獲取集合名稱列表。 因此,我在shell腳本中使用以下命令:
collections = mongo $dbName --eval "db.getCollectionNames()"
該命令的輸出結果是
“ MongoDB Shell版本:2.2.0連接到:cm_v2 col1,col2,col3,col4”
我只想獲取集合名稱,例如:col,col2,col3,col4。 因此,如何從結果中刪除類似版本的輸出。
使用--quiet
標志
collections=mongo $dbName --quiet --eval "db.getCollectionNames()"
如果要獲取一個集合數組,可以使用以下類似的方法進行迭代(如果集合名稱中有空格,則可能會傷到你):
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"
]
在下面使用:
DATABASE_COLLECTIONS=$(mongo $dbName --quiet --eval "db.getCollectionNames().join('')" | sed 's/,/ /g')
那么你也能
for col in $DATABASE_COLLECTIONS; do
echo $col
done
批處理版本的Davor Lucic的答案 :
for /f "tokens=* usebackq" %%c in (
`echo show collections ^| mongo "host:port/dbname" --quiet`
) do (
echo %%c
)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.