mongoDB 列表处理

mongoDb 的列表与python类似,里面可以是字符串, 数字, 字典

记录一下如果在MongoDB的列表中存放多个字典的各种操作

插入

使用$push命令

想往一个列表中插入新数据,又不影响原有的时候使用,相当于入栈

collection.update_many({} , {"$push":{"property.my_list":"new_data"}})

删除

$pop命令和 $pull命令

$pop命令

$pop是出栈操作, 指定的字段名后填 1 或者 -1,
1 是从栈尾pop, -1 是从栈头pop

collection.update_many({},{"$pop":{"property.my_list":-1}})  # pop出my_list的第一个值

$pull

$pull 命令会删除所有符合条件的值
如果有

{ 
    "_id" : ObjectId("5dca7d8b5971e1f717c9b76d"), 
    "property" : {
        "my_list" : [
            "20191112", 
            "20191112", 
            "20191100"
        ]
    }
}

这样一条数据,在执行了

collection.update_many({},{"$pull":{"property.my_list":'20191112'}})

之后,就会是这样的:

{ 
    "_id" : ObjectId("5dca7d8b5971e1f717c9b76d"), 
    "property" : {
        "my_list" : [
            "20191100"
        ]
    }
}

····································································································

但是如果在列表中存储的是多条字典, 比如:

{ 
    "_id" : ObjectId("5dca7d8b5971e1f717c9b76d"), 
    "property" : {
        "my_list" : [
            {
                "date" : "20191112", 
                "value" : 100.0
            }, 
            {
                "date" : "20191112", 
                "value" : 200.0
            }, 
            {
                "date" : "20191101", 
                "value" : 100.0
            }
        ]
    }
}

这个时候想处理这个列表就要麻烦一些了。
插入操作和之前一样,不受影响。
查询在property.my_list列表中
删除列表中的某一个字典需要这样操作:

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 官网 中文版本 好的网站 Content-type: text/htmlBASH Section: User ...
    不排版阅读 9,954评论 0 5
  • 一、MongoDB简介 1.概述 ​ MongoDB是一个基于分布式文件存储的数据库,由C++语言编写。旨在为WE...
    郑元吉阅读 4,576评论 0 2
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 13,809评论 1 32
  • 清晨的村庄,晨光熹微,部分人家的烟囱早已炊烟缭绕,外婆也开始了一天的忙碌。十多年了,打我记事的时候起,她老人家便...
    15too阅读 3,199评论 4 8
  • 同一个灵魂会在某一个时间段,对特定的一类人而言支配着两个躯体。 是的,这就是母亲怀胎十月之时。 母亲的所有情感在影...
    達士通人阅读 4,589评论 6 30