MongoDB之修改器
$set 简单粗暴 {name: valuel}
直接将key对应的值赋值给value、
db.xxoo.insert({}, {set: {key: value}}) // 添加字段
相当于python中的dict['name'] = value
$unset 简单粗暴的删除字段
db.userinfo.updateOne({age: 18},{$unset: {age: 1}}) // 删除age字段
相当于python中的del dict['name']。其中{age: 1}中的1也可以写其他值,总之布尔值为true即可。
$push 针对array的操作,添加
db.userinfo.updateOne({name: 'Ta'},{$push:{ghobby: 10}}) // 给ghobby字段添加10
在array中追加一个新的元素,相当于python中的[].append('')。
$pull 针对array的操作,删除
db.userinfo.updateOne({name: 'Ta'},{$pull:{ghobby: 10}}) // 删除ghobby字段中的10
删除array中的一个元素,相当于python中的[].remove(item)或者[].pop(-1)。
$pop 针对array的操作,删除
db.userinfo.updateOne({name: 'Ta'},{$pop:{ghobby: -1}}) // 删除ghobby字段中的第一个值
当{ghobby: -1}中ghobby对应的值为-1时,则是正序删除第一个;ghobby对应的值为1时,则倒序删除第一个,即倒数第一个。 1与-1也可以写为其他值,正值从后往前删,负值从前往后删。
$inc 引用增加
db.userinfo.updateMany({},{$inc:{age: 1}}) // 给userinfo表中的age字段统一在原有的基础上增加1,当没有这个字段时,就创建一个,然后初始值为1.
$字符
$ 保存符合索引条件的下标
db.userinfo.updateOne({ghobby: 5},{$set:{'ghobby.2': '四'}}) // 将userinfo表中的ghobby字段中的索引为5的值修改为‘四’,{ghobby: 5}
换另外一种方式
db.userinfo.updateOne({ghobby: 5},{$set:{'ghobby.$': '五'}}) // 将userinfo表中的ghobby字段中的值为5的元素替换为‘五’,{$set:{'ghobby.$': '五'}}中的$就是值为5的元素的索引,也就是,'ghobby.$'代指的就是值为5的这个元素。
当列表套列表的情况下只能使用一次$。
Object 字典操作
修改
db.userinfo.updateOne({name: 'Ta'},{$inc:{'Info.体重': -5}}) // 给userinfo表中的Info字段的体重元素减去5。
添加
db.userinfo.updateOne({name: 'Ta'},{$inc:{'Info.长度': 18}}) // 给userinfo表的Info字段添加一个值为18的长度元素
Array + Object
db.userinfo.updateOne({'ghobby.长度': 18}, {'$inc': {'ghobby.$.长度': 2}}) // 给userinfo表中的ghobby中的长度增加2
使用$的好处是只是更改选中的这一条数据的具体的这个值,否则的话会修改这条记录中的所有的相关的值。
limit 限制显示
从当前位置选择5个
db.userinfo.find({}).limit(5) // 显示查到的前五条数据
skip 跳过
db.userinfo.find({}).skip(2) // 从零开始跳过两条数据,显示剩下的所有的数据
sort 排序
db.userinfo.find({}).sort({ id:-1 }) // 根据id进行降序排序
limit + skip + sort
pymongo
0