使用Linux shell脚本向mongodb添加值
这里我试图将一些值推送到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
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