[英]Meteor - Mongodb: Removing values from second level object
我在一个有两个数组级别深的集合中有一个文档。 我似乎无法从Mongodb数据库的Meteor项目中删除它们。 基本上,我想分别删除或“取消设置”“ map_group.users”。 当我单击一个按钮以调用下面的方法时,它将全部删除。 不是我特别想要的那个。
'click .ig_map_remove_user'(event){event.preventDefault()
Meteor.call('remove_instragram_group_map_user', FlowRouter.current().params.group_name, this.username, this.id, this.profile_picture, function(err) {
if (err) {
console.log(err)
console.error('Could not remove user from group.')
} else {
console.log('User removed from group')
}
})
}
服务器js
remove_instragram_group_map_user: function(group, username, id, profile_photo){
instagram_collection.update({
user_id: Meteor.userId(),
"map_group.group_name": group
}, {
$unset: {
"map_group.$.users": {
"username": username,
"id": id,
"profile_photo": profile_photo
}
}
})
}
您要使用$pull
而不是$unset
,这基本上会删除该字段。 假设用户名在该数组中是唯一的,则可以直接在其上进行匹配:
instagram_collection.update({
user_id: Meteor.userId(),
"map_group.group_name": group
},{
$pull: {
"mapGroup.$.users": {
"username": username
}
}
})
我在Michels的帮助下得到答案
instagram_collection.update({
user_id: Meteor.userId(),
"map_group.group_name": group
}, {
$pull: {
"map_group.$.users": {
"username": username
}
}
})
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.