sh文件构造mongo文件

时间:2016-02-04 13:55:17

标签: bash mongodb shell

我的文档结构如下:

{"name":"John", "age":32, ...other fields}

不需要初始化所有其他字段,只需要名称和年龄。我想创建一个带有名称和编号的脚本

./client.sh John 32

并在脚本中,它将执行类似

的操作
db.client.insert({"name":$1,"age":$2});

如何实现这个目标?

1 个答案:

答案 0 :(得分:0)

这是一个有效的简单示例脚本

 #!/bin/bash

 if [ $# -lt 2 ]
 then
   echo "USAGE: $0 name age"
   exit 1
 fi

 mongo <<EOF
 use test
 db.client.insert({"name":"$1", "age":$2})
 db.client.find()
 EOF

它假定mongo已安装在您的路径中,并且您在client数据库中拥有test集合。

下面的示例运行
hduser@localhost:~/temp$ ./mongo_ins.sh "overflow" 20
MongoDB shell version: 2.6.10
connecting to: test
switched to db test
WriteResult({ "nInserted" : 1 })
{ "_id" : ObjectId("56b35d134c24bf7c1190cfb3"), "name" : "Stack", "age" : 1     }
{ "_id" : ObjectId("56b35dabe23223802ea3fa61"), "name" : {  }, "age" : 10 }
{ "_id" : ObjectId("56b35ebbd69a0abeeb817fe3"), "name" : "overflow", "age" : 20 }
bye

希望这有帮助