学习《Mongodb权威指南》学习笔记 (一)

使用$set来增加一个属性

db.table1.update({"_id":ObjectId("5472881298a2819b7ee66327")},{"$set":{"like":"123"}})

使用$set 更改一个属性 

db.table1.update({"_id":ObjectId("5472881298a2819b7ee66327")},{"$set":{"like":["123","456","789"]}})





使用$unset来删除一个属性 

db.table1.update({"_id":ObjectId("5472881298a2819b7ee66327")},{"$unset":{"like":"3333"}})



如要删除一个属性

db.table1.update({"_id":ObjectId("5472881298a2819b7ee66327")},{"$unset":{}})



$inc 用来增加属性的值 或在键不存在时创建这个键 值只能是整数 长整数 双精度浮点数 否则报错 例

{
    "_id" : ObjectId("5472881298a2819b7ee66327"),
    "game" : "pinball",
    "name" : "joe",
    "score" : 400
}

db.table1.update({"_id":ObjectId("5472881298a2819b7ee66327")},{"$inc":{"score":50}})
修改后
{
    "_id" : ObjectId("5472881298a2819b7ee66327"),
    "game" : "pinball",
    "name" : "joe",
    "score" : 450
}


使用$push 为一个键的末尾加入一个元素 要是没有就会创建一个新的数组 不能对非数组进行push操作 例:

db.table1.update({"_id":ObjectId("5472881298a2819b7ee66327")},{
        $push:{
            "people":{
                  "name" : "joe",
                  "like" : "lookbook"
                }
        }
    })

使用$addToSet 为一个数组push一个 值 如果 该数组已经有相同的值 则不会添加  可避免重复

db.table1.update({"_id":ObjectId("5472881298a2819b7ee66327")},{ "$addToSet":{"people": "123"}})
{
    "_id" : ObjectId("5472881298a2819b7ee66327"),
    "game" : "pinball",
    "name" : "joe",
    "score" : 500,
    "people" : [ 
        {
            "name" : "joe",
            "like" : "lookbook"
        }, 
        "123"
    ]
}


注意 

使用$addToSet 和 $each  灵活运用技巧 例:

db.table1.update({"_id":ObjectId("5472881298a2819b7ee66327")},{ "$addToSet":{"people": {"$each":["4444","5555","666"]}}})

{
    "_id" : ObjectId("5472881298a2819b7ee66327"),
    "game" : "pinball",
    "name" : "joe",
    "score" : 500,
    "people" : [ 
        {
            "name" : "joe",
            "like" : "lookbook"
        }, 
        "123", 
        "4444", 
        "5555", 
        "666"
    ]
}

使用$pop 来删除数组中的 第一个或者 最后一个元素 例:  {$pop : {key:1}}   从数组末尾删除一个元素   {$pop : {key:-1}}   从头部删除

db.table1.update({"_id":ObjectId("5472881298a2819b7ee66327")},{'$pop' : {"people":1}})

删除后

{
    "_id" : ObjectId("5472881298a2819b7ee66327"),
    "game" : "pinball",
    "name" : "joe",
    "score" : 500,
    "people" : [ 
        {
            "name" : "joe",
            "like" : "lookbook"
        }, 
        "123", 
        "4444", 
        "5555"
    ]
}


使用$pull基于条件删除元素 而不是依据位置 也是数组操作  例:

db.table1.update({"_id":ObjectId("5472881298a2819b7ee66327")},{ "$pull" : {"people" : "4444"} })



修改前 

{
    "_id" : ObjectId("5472881298a2819b7ee66327"),
    "pull" : {
        "people" : [ 
            "4444", 
            "5555"
        ]
    },
    "people" : [ 
        "4444", 
        "5555", 
        "666"
    ]
}

修改后

{
    "_id" : ObjectId("5472881298a2819b7ee66327"),
    "pull" : {
        "people" : "5555"
    }
}


ps 语句

db.table1.update({"_id":ObjectId("5472881298a2819b7ee66327")},{"$push" : {"people" : {"$each":[{"name":"1212","password":"sadsad"},{"name":"ads","password":"adasdsa"},{"name":"23232","password":"adad"}]}}})

修改后

{
    "_id" : ObjectId("5472881298a2819b7ee66327"),
    "pull" : {
        "people" : [ 
            "4444", 
            "5555"
        ]
    },
    "people" : [ 
        {
            "name" : "aaa",
            "password" : "12121"
        }, 
        {
            "name" : "1212",
            "password" : "sadsad"
        }, 
        {
            "name" : "ads",
            "password" : "adasdsa"
        }, 
        {
            "name" : "23232",
            "password" : "adad"
        }
    ]
}



update 第一个参数 查询条件

    第二个参数 修改内容

            第三个参数  是否全部更新 true or false

            第四个参数  是否启用 upsert update and insert

            


 



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值