How to set mongo field from variable

后端 未结 2 1731
被撕碎了的回忆
被撕碎了的回忆 2020-12-16 17:24
for(var key in resp.updated_items){
    Meteor.users.update({backend_id: Meteor.user().backend_id},
    {$set: {\'profile\': {key: resp.updated_items[key]}}});
}


        
相关标签:
2条回答
  • 2020-12-16 17:31

    Basics:

    var obj = {key: 'value'}; //prints {key: "value"}
    var obj2 = {};
    var key = 'someKey';
    obj2[key] = 'someValue';
    //{someKey: 'someValue'}
    

    Try this: (You have to use [] for that.)

    for(var key in resp.updated_items){
      var set = {profile: {}};
      set.profile[key] = resp.updated_items[key];
      Meteor.users.update({backend_id: Meteor.user().backend_id},
      {$set: set});
    }
    

    I am not able to remeber how set works in meteor. But in mongo, you have to do something like this:

    for(var key in resp.updated_items){
      var set = {};
      set['profile.' + key] = resp.updated_items[key];
      Meteor.users.update({backend_id: Meteor.user().backend_id},
      {$set: set});
    }
    
    0 讨论(0)
  • 2020-12-16 17:49

    If you have only one value to update

    updateUserData: function(userId, key, value) {
                this.unblock();
                let set = {};
                set[key] = value;
                Meteor.users.update({
                    _id: userId
                }, {$set: set});
    
                return true;
    
            }
    
    0 讨论(0)
提交回复
热议问题