host=localhost
port=27017
db=cms
for c in `mongo --quiet $host:$port/$db --eval 'db.getCollectionNames()' | sed 's/,/ /g'`
do
mongoexport --host $host --port $port -d $db -c $c > $c.json
done
这给了我很多空文件,文件名如下:“users.json”而不是 users.json,所以',我不知道它们来自哪里。另一件事是我有一个名为“[”.json 的文件和另一个名为“]”.json 的文件。
mongoexport --uri="mongodb://localhost:27017/" --db records --collection users --out dump.json
上述工作正常,所以我想知道这里是否是主机参数使用不正确的问题。
答案1
预期的输出mongo --quiet $host:$port/$db --eval 'db.getCollectionNames()'
如下:
[ 'test2', 'log', 'log2' ]
因此你可以使用如下命令:
mongosh --quiet $host:$port/$db --eval 'db.getCollectionNames()'|awk -F"[' ,]" 'BEGIN {OFS=" "} { for(i=2;i<NF;i++) if ($i!="") printf "%s\n", $i}'
你会得到这样的结果:
test2
log
log2
这样就可以导出收藏品了。