mongodb关于$set $unset的键增删操作

其实mongodb的json是带点语法的.比如:

type CA struct {
Member string
}

type CB struct {
Ca CA
}

如果如果 CA要用 member就需要使用点语法到 Ca.Member.mongodb的操作使用点可以很方便的找到目标位置.比如:

{
    "_id": ObjectId("521d9c18b34cd9052000000a"),
    "allylist": {
        "1987": {
            
        }
    },
    "allyreq": {
        "1": true,
        "2": true,
        "3": true
    },
    "energy": 100,
    "exp": 200,
    "formation": {
        "id": 0,
        "positionlist": [
            NumberLong(0),
            NumberLong(0),
            NumberLong(0),
            NumberLong(0),
            NumberLong(0),
            NumberLong(0),
            NumberLong(0),
            NumberLong(0),
            NumberLong(0)
        ]
    },
    "gold": 10000,
    "heroghost": 20000,
    "iconid": 1,
    "level": 10,
    "name": "cs9",
    "name2": "Roger",
    "name3": {
        "name": "Roger"
    },
    "password": "123",
    "sex": 1,
    "userid": NumberLong(9)
}

这是个蛮复杂的数据了.现在要干掉allyreq里面的1这个key.

就可以使用. update({"userid":9},{"$unset":{"allyreq.1":true}})

注意unset这个东东只认key.value可以是任意的.true.1或者其他都没关系.只要看到 allyreq.1就会干掉它

同理 update({"userid":9},{"$set":{"allyreq.1":true}}) 会重新把1加回来.


  • 8
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值