クエリが更新された情報を返さないのはなぜですか?
UserSchema.findByIdAndUpdate(
{ _id: userId },
{ $set: { couponList: couponList } }, { new: true }).populate('couponList').exec().then(user => {
// user returning with the old information
}).catch(err => console.log(err));
私は3つのパラメータを持っています:
私のクーポンスキーマは次のようになります。
import mongoose from 'mongoose';
const CouponSchema = new mongoose.Schema({
name: {
type: String,
default: 'Unknown'
},
description: {
type: String,
default: undefined
},
validity: {
type: Date,
default: null
},
code: {
type: String,
default: undefined
},
blackList: {
type: Array,
ref: 'user',
default: []
},
blackListFlag: {
type: Boolean,
default: false,
},
whiteList: {
type: Array,
ref: 'user',
default: []
},
limit: {
type: Number,
default: 0,
},
counter: {
type: Number,
default: 0,
},
amount: {
type: Number,
default: 0,
},
discountType: {
type: String,
default: undefined,
}
}, { collection: 'coupon' });
export default mongoose.model('coupon', CouponSchema);
そして、私のユーザースキーマには、クーポンスキーマへの参照があります。
couponList : {
type: Array,
ref: 'coupon',
default: []
},
問題は更新された情報を返すことではなく、コレクションにデータを入力することであることがわかりました。
ユーザースキーマのクーポンコレクションへの正しい参照:
couponList: [ { type: mongoose.Schema.ObjectId, ref: 'coupon' } ],
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加