美文网首页
mongoDB 列表处理

mongoDB 列表处理

作者: stagger_xu | 来源:发表于2019-11-12 18:09 被阅读0次

    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列表中
    删除列表中的某一个字典需要这样操作:

    相关文章

      网友评论

          本文标题:mongoDB 列表处理

          本文链接:https://www.haomeiwen.com/subject/ihrmuctx.html