私は私が何をしたいのかを示し、このバイオリンを持っており、それが意図したとおりに動作します: はhttps://jsfiddle.net/mbLwsnak/反復処理ノードにおけるマングースからデータを超える
それがないすべてのオブジェクトの配列をループで、キーと値のペアを追加します。
私のノードアプリケーションでこの同じコードがあり、動作しません。コードは事実上同じですが、新しいペアはオブジェクトに追加されないため、コンテキストでなければなりません。
Schema.find()
.then(function(currencydata){
var data = currencydata;
data.forEach(function(obj){
obj.thing = "Thing";
})
console.log(data);
mdata.currencydata = data;
})
.then(function(result){
res.render('index', mdata);
})
私が考えることができる唯一の違いは、これがすべて非同期関数の中にあることです。私は、非同期であるが、何の変更もしない場合に備えて、ログをsetTimeoutの中に入れようとした。
編集: currencydataは、mongooseスキーマから返されたオブジェクトの配列です。 JavaScriptの オブジェクトプレーンにマングースの文書を変換するために
[{
country: 'Canada',
currency: 'CAD',
cost: 5.98,
exchangerate: 1.33,
value: -10.9
}, {
country: 'United States',
currency: 'USD',
cost: 5.06,
exchangerate: 1,
value: 0
}, {
country: 'India',
currency: 'INR',
cost: 170,
exchangerate: 68.33,
value: -50.8
}]
私はマングース専門家ではありません。しかし、 "obj"というマングースモデルはありませんか? '.save()'を試したことがありますか?(実際には "Thing"を保存することになっています)saveが意図されていない場合、 '.toJSON()'を使用して返されたオブジェクト(マングースモデルではありません)を変更してください。 –
私はMongoDBに新しいキーペアを保存しようとしているように思えましたが、私はそうではありません。私はちょうど私のフィドルのように返された配列のデータを厳密に操作しています。 – SpringsTea