我想过滤mongodb中的一些集合以进行导出。但字符串比较似乎不正确。
在我的情况下,{p>$1
是localhost:17017/mydb
shop
是mongodb中的一个集合,但$i == 'shop'
永远不会成功。
#!/bin/bash
colls=`mongo $1 --eval 'db.getCollectionNames();' | tail -1`
IFS=',' read -ra ADDR <<< $colls
for i in "${ADDR[@]}"
do
if [[ $i == 'shop' ]]
then
echo $i
fi
done
或者是否还有其他方法可以从mongodb中导出指定的集合?
答案 0 :(得分:1)
尝试回应您所获得的值,并查看您应该如何实际使用这些模式。还请正确引用您的变量。使用$()比反引号更好:
#!/bin/bash
colls=$(mongo "$1" --eval 'db.getCollectionNames();' | tail -1)
echo "colls: $colls"
IFS=',' read -ra ADDR <<< "$colls"
echo "colls count: ${#ADDR[@]}"
for i in "${ADDR[@]}"
do
echo "Trying |$i|."
if [[ $i == 'shop' ]]
then
echo "$i"
fi
done