我想更改解析器在数据库中创建支付卡的方式。因此,现在我在一个集合中创建钱包,然后在另一个集合中创建付款,并在我的付款中使用wallet_id将其链接。但是现在我想将付款放入钱包中定义的card []中。知道如何在解析器中执行此操作吗?
这是我的电子钱包架构
const WalletSchema = new Schema({
tokens: {
type: Number,
default: 0
},
userId: {
type: Schema.Types.ObjectId,
ref: 'User',
unique: true
},
cards: [
{
type: Schema.Types.ObjectId,
ref: 'Payment'
}
]
}, { timestamps: true });
这是我的createPayment
解析器
createPayment: async (_, { wallet_id, ...args }, { user }) => {
try {
await requireAuth(user);
const payment = await Payment.create({ ...args, wallet: wallet_id });
pubsub.publish(PAYMENT_ADDED, { [PAYMENT_ADDED]: payment });
return payment;
} catch (error) {
throw error;
}
},
有什么主意吗?
答案 0 :(得分:0)
您需要为卡支付创建另一个架构;
const WalletSchema = new Schema({
tokens: {
type: Number,
default: 0
},
userId: {
type: Schema.Types.ObjectId,
ref: 'User',
unique: true
},
cards: [ PaymentSchema ] <-- here
}, { timestamps: true });
//新架构
const PaymentSchema = new Schema({
type: Schema.Types.ObjectId,
ref: 'Payment'
});
基于电子钱包架构,您需要编写暴露graphql架构