2015-12-11 22 views
0

我尝试编写脚本以删除mongodb中的集合并将数据导入到mongodb中。脚本linux mongodb错误SyntaxError:意外[

这里我的脚本:

#!/usr/bin/env mongo 
var mongodb = new Mongo().getDB("mydb") 
mongodb.getCollection("test").remove({}) 
if [ "$1" = 1 ]; 
then 
     mongoimport -d mydb-c test --type csv --file data_1.csv --headerline 
else 
     mongoimport -d mydb-c test --type csv --file data_2.csv --headerline 
fi 

当我运行脚本,我得到这个错误:è查询语法错误:意外的令牌[在./import.sh:4 加载失败:./import.sh

但是当我运行这个

#!/usr/bin/env mongo 
    var mongodb = new Mongo().getDB("mydb") 
    mongodb.getCollection("test").remove({}) 

if [ "$1" = 1 ]; 
    then 
      mongoimport -d mydb-c test --type csv --file data_1.csv --headerline 
    else 
      mongoimport -d mydb-c test --type csv --file data_2.csv --headerline 
    fi 

它工作正常!

任何人都可以指定我的脚本错在哪里?

回答

0

基本上你正在尝试使用两个解释器,一个用于mongo,一个用于shell。您只能使用一个解释器来执行shell脚本。您可以使用here语法。尝试运行以下代码:

#!/bin/bash 
mongo << __HERE__ 
var mongodb = new Mongo().getDB("mydb") 
mongodb.getCollection("test").remove({}) 
__HERE__ 
if [ "$1" = 1 ]; 
    then 
      mongoimport -d mydb-c test --type csv --file data_1.csv --headerline 
    else 
      mongoimport -d mydb-c test --type csv --file data_2.csv --headerline 
    fi 
+0

非常感谢。这行得通。 – user1697646

相关问题