3
に異なる動作を救うここで私は私がすなわち課金、current_referral_programと紹介して先に行くためだけに3つのフィールドを選択していたにfuncitonを持って、私ははマングースは、選択移入およびMacとWindows
static populateReferralLinks(){
return Promise.coroutine(function*(){
let companies = yield Company.find({},'billing referral current_referral_program')
.populate('billing.user','emails name');
for(let i = 0 ; i < length ; i++){
companies[i].referral.is_created = true;
companies[i].referral.referral_email = companies[i].billing.user.emails[0].email;
companies[i] = yield companies[i].save();
}
return companies;
}).apply(this)
.catch((err) => {
throw err;
});
}
やったことです。 billing.userに格納されている参照を使用してユーザーを設定します。 今すぐこの関数を呼び出したときに、
企業[i] .save();
次のコマンドを
Mongoose: companies.update(
{ _id: ObjectId("58d12e1a588a96311075c45c") },
{ '$set':
{ billing:
{ configured: false,
user: ObjectId("58d12e16588a96311075c45a") },
referral:
{ is_created: true,
referral_email: '[email protected]',
},
updatedAt: new Date("Wed, 22 Mar 2017 12:02:55 GMT")
}
}
)
ウィンドウで、端末に示す。しかしMacのターミナルで、それは、このコマンド
Mongoose: companies.update({ _id: ObjectId("58d12e1a588a96311075c45c") }) { '$set': { billing: { configured: false, user: ObjectId("58d12e16588a96311075c45a") }, current_limit: {}, current_usage: {},referral: { is_created: true, referral_email: '[email protected]'}}, '$unset': { updatedAt: 1 } }
は今、私はcurrent_limitとcurrent_usageを言及していない示していますを空にします。 Windowsではうまく実行されますが、Macでは設定していますcurrent_limitとcurrent_usageは空ですので、Macでは空のオブジェクトでドキュメントを更新しますが、ウィンドウでは更新しません。
両方のOSで同じように動作するはずですが、そうではありません。