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