美文网首页
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