我有一个基于Stripe和MERN堆栈的应用程序。我的问题是,当我命中端点以获取费用然后console.log结果时,我看到了一系列费用。哪个好因此,我决定使用forEach
遍历它们并提取amount
值。这可行。
但..
router.get('/all', (req, res) => {
stripe.charges.list({
limit: 3
}).then(charges => {
charges.data.forEach(charge => {
return newData = new Charge({
amount: charge.amount,
})
});
newData
.save()
.then(charge => {
res.json(charge)
})
.catch(err => console.log(err))
})
})
当我使用
forEach
根据我的模型在MongoDB中创建记录时,即使阵列中至少有3个电荷,我也只能在数据库中保存一条记录。我该如何解决?谢谢
最佳答案
您最好使用一个操作而不是多个操作。
为此:Model.insertMany
方法。 https://mongoosejs.com/docs/api.html#model_Model.insertMany
伪代码:
const dataForSaving = charges.data.map((charge) => {
return {
amount: charge.amount,
};
});
Collection.insertMany(dataForSaving, (err, docs) => {
if (err) {
throw new Error(err);
}
console.log(docs);
});