bashスクリプトから次のコマンドを実行しようとしています
db['STUDENT_DOCUMENTS.chunks'].find({
_id: {
$in: [
ObjectId("57ce3bc6e4b0ee0234924cb4"),
ObjectId("57a40750e4b03808d591b5cb"),
ObjectId("57b17588e4b03808d594ceec"),
ObjectId("57b2e03ee4b03808d595246f"),
ObjectId("57c786bde4b03808d598eb41")
]
}
})
どこObjectId
総額区切りファイルである以上100+と私はこれはbashシェルスクリプトで行うことができますどのようにファイルにユーザー名とパスワードと出力との結果をMongoDBのためにログインする必要がありますか?
こんなことを考えていた
for i in 'cat ObjectId.txt" ; do \
mongo 127.0.0.1:10000/admin --username=user --password=pass \
--eval "db['Student_DOCUMENTS.chunks'].find({_id :{$in: [ObjectId("$i")
]}})
このスクリプトを実行すると、出力がファイルにリダイレクトされます。これはbashスクリプトで実行できますか?
id.txt
新しい行で区切られたというファイルにすべてのIDがあるとします。
$in
検索リクエストに含まれるIDリストを作成します(ObjectId('...'),...
)--quiet
mongodb接続ログを含めないために使用します> your_file.json
Bashスクリプト:
file=id.txt
id_list=
while IFS= read -r id || [[ -n "$id" ]];
do
if [ ! -z "$id_list" ]; then
id_list="$id_list, ObjectId(\"$id\")"
else
id_list="ObjectId(\"$id\")"
fi
done <"$file"
request="db['Student_DOCUMENTS.chunks'].find({_id :{\$in: ["$id_list"]}})"
mongo 127.0.0.1:10000/admin --username=user --password=pass \
--quiet --eval "$request" > request.json
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加