原文来自:http://blog.csdn.net/spiritring/article/details/10486893
其实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加回来.