使用Linux shell脚本向mongodb添加值

使用Linux shell脚本向mongodb添加值,linux,node.js,bash,mongodb,loops,Linux,Node.js,Bash,Mongodb,Loops,这里我试图将一些值推送到mongodb这是我的伪代码 while read LINE do addRow $para1 $param1 #pass value to the mongo done < ${FILE} function addRow() { para1="$1"; para2="$2"; if [ ! -z "$para1" ] then ech

这里我试图将一些值推送到mongodb这是我的伪代码

 while read LINE
    do          
     addRow $para1 $param1 #pass value to the mongo
    done < ${FILE}

    function addRow() {
    para1="$1";
    para2="$2";
        if [ ! -z "$para1" ]
        then
             echo $1 $2;
             mongo dbname <<EOF
                newstuff = [{ "name" : "${1}", "age" : "${2}" }]
                db.collectionname.insert(newstuff);
             EOF
        else
           echo “Failed”;
        fi

    }

假设文件中的每一行都包含两个参数,我将首先为所有内容构建JS对象,然后通过一个调用将其添加到mongo:

items=()
while read para1 para2; do
    items+=( "$(printf '{"name":"%s","age":"%s"}' "$para1" "$para2")" )
done < "$FILE"
js_list=$(IFS=,; echo "[${items[*]}]")

mongo dbname <<EOF
newstuff = $js_list
db.collectionname.insert(newstuff);
EOF
items=()
当读取para1 para2时;做
items+=(“$(printf'{“name”:“%s”,“age”:“%s”}'$para1”“$para2”))
完成<“$FILE”
js_list=$(IFS=,;echo“[${items[*]}]”)

MongoDBName为什么不使用Perl、Ruby、NodeJS等语言编写脚本并从脚本中调用它?按原样,每次都要启动/停止控制台。如果您想使用同一个连接,您需要将所有指令成批处理并调用控制台一次。@glenn jackson非常感谢您,伙计!!,这就是我所等待的。你能解释一下$(IFS=,;echo“[${items[*]}]”部分的进一步修改吗。它用逗号连接数组元素。格式
“${array[*]}”
(必须加引号)使用$IFS的前几个字符连接数组元素。
items=()
while read para1 para2; do
    items+=( "$(printf '{"name":"%s","age":"%s"}' "$para1" "$para2")" )
done < "$FILE"
js_list=$(IFS=,; echo "[${items[*]}]")

mongo dbname <<EOF
newstuff = $js_list
db.collectionname.insert(newstuff);
EOF