如何从shell脚本中的mongo数据库中获取精确的集合列表

Kya*_*u L 1 linux shell sh mongodb

我想从mongo数据库中获取集合名称列表.所以,我在shell脚本中使用以下命令:

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

该命令的输出结果是

"MongoDB shell版本:2.2.0连接到:cm_v2 col1,col2,col3,col4"

我想只获得集合名称,例如:col,col2,col3,col4.那么,我应该如何从结果中删除类似版本的输出.

Dhr*_*hak 7

使用--quiet 标志

collections=mongo $dbName --quiet --eval "db.getCollectionNames()"
Run Code Online (Sandbox Code Playgroud)


Dav*_*cic 5

如果你想获得一个可以迭代的集合数组,请使用类似这样的东西(如果你的集合名称中有空格,这可能会咬你):

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


for collection in $collections;
do 
    echo "$collection"
done
Run Code Online (Sandbox Code Playgroud)

这将返回带有引号的 JSON 格式的名称列表,这对于 BASH 脚本来说并不是很有用

mongo $dbName --quiet --eval "db.getCollectionNames()"

[
    "collection1",
    "collection2"
]
Run Code Online (Sandbox Code Playgroud)