mongo插入对象,如果不存在于流星的doc中

时间:2015-01-31 01:55:01

标签: mongodb meteor

我有这个对象

我有现有记录

{
     "_id":"xxxx",
     "industry" : "Information Technology and Services",
    "name" : "dsdds",
    "profession" : "Information Technology and Services Profession Two",
    "self_employed" : true,
    "sex" : "M"
}

我想用{loc:"sss",db:"sss",bio:"fsdf"}作为配置文件对象更新对象,如下所示

 {
         "user_id":"xxxx",      
         "industry" : "Information Technology and Services",
        "name" : "dsdds",
        "profession" : "Information Technology and Services Profession Two",
        "self_employed" : true,
        "sex" : "M",
        "profile":{loc:"sss",db:"sss",bio:"fsdf"}
    }

我试过这个

User.update({user_id:"xxxx"},{$set:{"profile":{user:"ssa",sss:"dsd"}}})
User.update({user_id:"xxxx"},{$set:{"profile":profile}})

两者都返回1但不插入记录。

我的命令有什么问题? 在我的终端

User.update({user_id:"JvH4YMBJmZrKWPhig"},{$set:{"profile":{user:"ssa",sss:"dsd"}}})
1
> User.findOne({user_id:"JvH4YMBJmZrKWPhig"})
{ _id: 'ye4uzZYXT5PCtcNrs',
  company: 'ghghfh',
  dob: '703621800',
  hubs: [ 'AcztzE8W3hFTeTyz8' ],
  industry: 'Computer Software',
  job_title: 'Software Engineer',
  name: 'ss',
  profession: 'Computer Software Profession One',
  self_employed: false,
  sex: 'M',
  user_id: 'JvH4YMBJmZrKWPhig' }

1 个答案:

答案 0 :(得分:1)

尝试

var finde = User.findOne({user_id:"JvH4YMBJmZrKWPhig"})

所以试试其中之一。

Meteor.users.update({_id:finde._id}, {$set: {profile: {value1: 'value1', value2: 'value2'}}});

或者如果您使用的是与Accounts用户不同的其他Collection 在更新中使用对象。

var values = {
  value:"value1",
  value2:"value2"
}
    User.update({_id:finde._id},{$set: {profile: {values}}});