mongo更新与删除集合中的字段python

     因为业务需求,原本的mysql关系型数据库不能再继续沿用,所以公司选择了mongo作为存储。

     mongo的CRUD(增删改查)还是很简单的,因为mongo本身用的是dict类型,即key-value。但是在做项目中还是有问题把我困住了,所以我想要把这些问题写出来,以防以后犯错。

     我在mongo有这样一张表:

{
      "name":"renyuan",
      "1":[{"id":1,"title":"test1"},{"id":2,"title":"test2"}],
      "2":[{"id":3,"title":"test3"},{"id":4,"title":"test4"}]
}

    
更新操作 

   我现在有这一需求:把"id":1中的"title"改为"test5",但是我在明面上是不知道前面"1"这个key的,必须通过一次mysql查询才知道。

   所以对于更新,我们有以下代码 

已知id和需要修改的title的值        
        key=getKeyById(id)                      #得到"id"为1的key值,这里为"1"
        client = MongoClient('localhost', 27017)#比较常用
        test=client.test                  #test为mongo的db
        source=test.source                      #source为mongo test数据库的数据表

        source.update_one({key+".id".encode("utf-8"):id},{"$set":{key+".title".encode("utf-8"):title}})
   这样就可以更新

 "1":[{"id":1,"title":"test1"},{"id":2,"title":"test2"}]  

 "1":[{"id":1,"title":"test5"},{"id":2,"title":"test2"}]  




   删除操作

   我们现在要删除"id"为1的数据,有以下代码:

source.update_one({"name":"renyuan"},{"$pull":{key:{"id":id}}})
这样就可以删除"id"为1的数据,即source表变为

<span style="font-size:14px;">{
      "name":"renyuan",
      "1":[{"id":2,"title":"test2"}],
      "2":[{"id":3,"title":"test3"},{"id":4,"title":"test4"}]
}

 



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值