書籍に関するデータをAmazon APIから取得し、JSONオブジェクトとして保存しています。このデータをMeteorコレクションに挿入したいと考えています。ただし、JSONデータの一部のフィールドは "$"文字で始まり、このエラーにつながります。
MongoError: 'result.results.0.ItemAttributes.0'の$($)接頭辞フィールド '$'。 ManufacturerMaximumAge.0。$ 'は格納に有効ではありません。
データに "$"記号が含まれている場合は、コレクションにデータを挿入するのに役立ちます。これが不可能な場合は、JSONデータ内のすべての "$"を削除し、それをMeteorコレクションに格納する方法がありますか? ここではアマゾンのAPIを検索し、最初の10件の結果に関する情報を返しますブックのタイトルと著者与えられた私のコード、次のとおりです。これはJSONデータである
Meteor.methods({
itemSearch(appUUID,title, author) {
var result = {};
result.search = {
appUUID: appUUID,
title: title,
author: author
}
client.itemSearch({
title: title,
author: author,
searchIndex: 'Books',
responseGroup: 'ItemAttributes, Images'
}).then(function(results){
result.results = results;
var upsertResult = SearchResult.upsert({
appUUID: appUUID,
title: title,
author: author,
},
{
$set: {result: result}
}
);
}).catch(function(err){
SearchResult.upsert({
appUUID: appUUID,
title: title,
author: author,
},
{
$set: {result: result }
}
);
});
}
});
(のSearchResultは、コレクションへの参照である)、および「単位」の前のドル記号が問題の原因となっています。
"Width": [
{
"_": "810",
"$": {
"Units": "hundredths-inches"
}
}
]
こんにちは、遅れて申し訳ありません。私はこれを試して、あなたに戻ってきます。速やかなご返信ありがとうございます! – Zorrow2008
ありがとう、私はlodashとその良いを使用しています。 – Zorrow2008