シェルスクリプトからmongoコマンドを実行するにはどうすればいいですか? 質問する

シェルスクリプトからmongoコマンドを実行するにはどうすればいいですか? 質問する

シェル スクリプトでコマンドを実行したいのですがmongo、たとえばスクリプトでtest.sh:

#!/bin/sh
mongo myDbName
db.mycollection.findOne()
show collections

このスクリプトを 経由で実行すると./test.sh、MongoDB への接続は確立されますが、次のコマンドは実行されません。

シェルスクリプトを通じて他のコマンドを実行するにはどうすればいいですかtest.sh?

ベストアンサー1

--evalコマンドが 1 つだけの場合は、フラグを使用してコマンドを評価することもできます。

mongo --eval "printjson(db.serverStatus())"

注意: $ 記号で始まる Mongo 演算子を使用している場合は、シェルが演算子を環境変数として評価しないように、eval 引数を一重引用符で囲む必要があります。

mongo --eval 'db.mycollection.update({"name":"foo"},{$set:{"this":"that"}});' myDbName

それ以外の場合は、次のような表示が出る場合があります。

mongo --eval "db.test.update({\"name\":\"foo\"},{$set:{\"this\":\"that\"}});"
> E QUERY    SyntaxError: Unexpected token :

おすすめ記事