2015-12-11 25 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

相關問題