我在一个集合中有一个文档,它是两个数组级别的深度。我似乎无法从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
}
}
})
}
答案 0 :(得分:2)
您希望使用$pull
而非$unset
基本上删除该字段。假设用户名在该数组中是唯一的,您可以直接匹配:
instagram_collection.update({
user_id: Meteor.userId(),
"map_group.group_name": group
},{
$pull: {
"mapGroup.$.users": {
"username": username
}
}
})
答案 1 :(得分:1)
我是在Michels的帮助下得到的
instagram_collection.update({
user_id: Meteor.userId(),
"map_group.group_name": group
}, {
$pull: {
"map_group.$.users": {
"username": username
}
}
})