2011-11-14 15 views
0

は、コマンドラインで動作しますスクリプトを実行すると出力されます:は、私はMongoDBのからの輸出を取得するために簡単なスクリプトを持っている

$ ./simple_query.sh 
+ QUERY='{ "type":"listing" }' 
+ mongoexport --db event --collection listing --query '{ "type":"listing" }' --fields type,name --csv 
ERROR: too many positional options 

しかし、単にmongoexport行をコピーしてプロンプトに貼り付けるだけで、それは動作します。どうしたの?

(MongoDB 2.0.0の使用)

+0

'--fields" type "、" name "' -fields "type、name" 'にする必要がありますか? – Russell

+0

実際、ドキュメントを見ると、引用符を付けるべきではないと思っています。http://www.mongodb.org/display/DOCS/mongoexport – Russell

+0

良い考えですが、問題は解決しません。コマンドラインでは、引用符で囲まれたフィールド名と引用符で囲まれていないフィールド名の両方が機能します。スクリプトでは、どちらの方法でも動作しません。簡単にするために、この質問の引用符を編集しました。 – Raphael

答えて

0

古いバージョンのmongodbを使用していますか?もしそうなら、おそらくそれはthisバグです。 2.0.0- *のバージョンで修正されています。

:実際これは異なる問題かもしれません。クエリのスペースを削除して修正できます。空白はシェルが実際に複数の引数であると考えるように思えます。

QUERY="'{\"type\":\"listing\"}'" 
+0

ありがとう!アップグレードして問題が解決するかどうかを確認します。 – Raphael

+0

@raphaelcmスペースを削除することで問題を解決できることが分かりました。回答が編集されました。 – Lycha

+0

それはうまくいくか...奇妙に思える。 mongoexportは引用符で囲まれた文字列のスペースを扱えないのですか? – Raphael

関連する問題