我有代码检索Mongoose对象,然后使用stripeCustomerId(存储在文档中)来检索Stripe客户对象(通过nodejs条带).然后我想将条带客户对象附加到我的Mongoose对象.
exports.getPlatformByCId = (cId) => {
return new Promise((resolve, reject) => {
Platform.find({ clientId: cId }).then(response => {
let user = response[0];
stripe.customers.retrieve(user.stripeCustomerId, (err, stripeCust) => {
if(err) {
user["stripeCustomer"] = null;
} else {
user["stripeCustomer"] = stripeCust;
}
resolve(user);
})
}).catch(err => {
if(err) {
if(err.error !== 'not_found') {
resolve(err);
} else {
reject(err);
}
}
})
})
}
我也试过user.stripeCustomer = stripeCust我将mongoose对象带回到需要去的地方,但是stripeCustomer不是那个对象的一部分!我已经验证了stripeCustis实际上正在返回我期望它的数据.
任何指导?我想知道Schema是否以某种方式受到保护,也许有一种猫鼬方法来解决这个问题?
解决方法:
从猫鼬中断开对象.在进行查询时,使用mongoose的lean()方法来获取JSON对象.然后你可以添加键.
http://mongoosejs.com/docs/api.html#query_Query-lean