Meteor.users:[嵌套对象]中的$addToset



每次用户订阅"街道"或另一个"用户"时,我都想将他们的Id添加到当前用户的配置文件中的嵌套对象中。

我尝试了以下不同的结果:

Meteor.users.update(Meteor.userId(), {
        $addToSet: {
            'profile.subscription': { Street : streetDis
            }
        }
})

这会更新配置文件,但每次都会在数组中创建一个条目:

Profile.subscription[0] :  Street : "eziajepozjaoeja" 
Profile.subscription[1] : Street : "eezapoezkaejz"
Profile.subscription[2] : User : "akzejpazjepza"

我想要的架构如下:

Profile.subscription.Street[0] : "eziajepozjaoeja"
Profile.subscription.Street[1]:"eezapoezkaejz"
Profile.subscription.User[0]: "akzejpazjepza"

所以我尝试:

Meteor.users.update(Meteor.userId(), {
            $addToSet: {
                'a.profile.last.Adress': "akzejpazjepza"}
            }
    )

哪个返回:更新失败:拒绝访问

Meteor.users.update(Meteor.userId(), {
            $addToSet: {
                'a.profile': { last: {Adress : "akzejpazjepza"}}
            }
    })

这也会返回:更新失败:拒绝访问

如果您希望profile.subscription.streetsprofile.subscription.users都是id的数组,那么您应该更新用户的文档,如下所示:

Meteor.users.update(Meteor.userId(), {
  $addToSet: {
    'profile.subscription.streets': streetId,
    'profile.subscription.users': userId
  }
});

最新更新