私はフォーラムを検索し、同様の問題を抱えている多くの人々を見てきましたが、これとまったく同じ問題ではありません.
私の質問は最も単純な形式だと思います。誰も質問していないので、私が見逃しているものがあるに違いありません。
MongoDB スクリプトを呼び出して結果をファイルに取得するシェル スクリプトがあります。次に、そのファイルを jq で解析します。
クエリからの出力が有効な JSON ではないため、jq が壊れています。違反者は ObjectId です。「ALL JSON ALL THE TIME」が無効なJSONをどのように生成するかについて、私は完全に途方に暮れています。
私が見逃している基本的な何かがあると確信しています。
MyMongoScript.js というファイルがあります。その内容は次のようになります。
db.WorkflowJobs.find().sort({"STATUS":1}).forEach(printjson)
次のコマンドで MyMongScript.js を呼び出します。
mongo -u $MONGO_U -p $MONGO_P $MONGO_DB -quiet --eval "var DATE_TO_RUN=\"$DATE_TO_RUN\"" MyMongoScript.js
STDOUT への結果は次のとおりです。
{
"_id" : ObjectId("52816fd50bc9efc3e6d8e33f"),
"WORK_TYPE" : "HIVE",
"Script_Name" : "upload_metrics_LANDING_to_HIST.sql",
"Stop_On_Fail" : true,
"STATUS" : "READY",
"START_TS" : "NULL",
"END_TS" : "NULL",
"DURATION" : "NULL",
"INS_TS" : "Mon Nov 11 2013 16:01:25 GMT-0800 (PST)"
}
jsonlint.com がそれについて言っていることは次のとおりです。
Parse error on line 2:
{ "_id": ObjectId("52816fd50b
------------^
Expecting 'STRING', 'NUMBER', 'NULL', 'TRUE', 'FALSE', '{', '['
どんな助けでも大歓迎です。