繁体   English   中英

流星-Mongodb:从第二级对象中删除值

[英]Meteor - Mongodb: Removing values from second level object

我在一个有两个数组级别深的集合中有一个文档。 我似乎无法从Mongodb数据库的Meteor项目中删除它们。 基本上,我想分别删除或“取消设置”“ map_group.users”。 当我单击一个按钮以调用下面的方法时,它将全部删除。 不是我特别想要的那个。

数据库 在此处输入图片说明 客户端js

'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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM