2017-03-22 1 views
3

Voici ce que je l'ai faitMongoose sélectionner, enrichissez et enregistrer de se comporter différemment sur Mac et 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; 
     }); 
} 

J'ai un funciton dans lequel je ne sélectionner que 3 champs pour aller de l'avant avec la facturation i.e., current_referral_program et d'orientation. Et de remplir l'utilisateur en utilisant la référence stockée dans billing.user. Maintenant, quand j'appelle cette fonction alors sur la ligne

entreprises [i] .save();

La commande suivante est affichée dans le terminal dans les fenêtres

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") 
    } 
} 
) 

Mais dans le terminal de Mac, il montre cette commande

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 } } 

Maintenant, je ne l'ai pas mentionné CURRENT_LIMIT et current_usage être vide. vide s'exécutant correctement sur les fenêtres mais sur Mac, il règle current_limit et current_usage empty met donc à jour mon document avec des objets vides sur Mac mais pas sur Windows.

Il devrait se comporter de la même manière sur les deux OS mais ce n'est pas le cas.

Répondre

3

Apparemment, ce problème, il était en Mongoose 4.5.8 et est résolu dans la dernière version 4.9.1 i.e. Check it here