4,MongoDB 之 $关键字 及 $修改器 $set $inc $push $pull $pop MongoDB

我们在之前的 MongoDB 之 手把手教你增删改查 MongoDB - 2 中提到过 $set 这个系统关键字,用来修改值的对吧

但是MongoDB中类似这样的关键字有很多, $lt $gt $lte $gte 等等,这么多我们也不方便记,这里我们说说几个比较常见的

一.查询中常见的 等于 大于 小于 大于等于 小于等于

等于 : 在MongoDB中什么字段等于什么值其实就是 " : " 来搞定 比如 "name" : "路飞学城"

大于 : 在MongoDB中的 大于 > 号 我们用 : $gt  比如 :  "score" : { $gt : 80 } 就是 得到 "score" 大于 80 的数据

小于 : 在MongoDB中的 小于 < 号 我们用 : $lt  比如 :  "score" : { $lt : 80 } 就是 得到 "score" 小于 80 的数据

大于等于 : 在MongoDB中的 大于等于 >= 号 我们用 : $gte  比如 :  "score" : { $gte : 80 } 就是 得到 "score" 大于等于 80 的数据

小于等于 : 在MongoDB中的 小于等于 <= 号 我们用 : $lte  比如 :  "score" : { $lte : 80 } 就是 得到 "score" 小于等于 80 的数据

这就是MongoDB中的运算符,是不是很类似我们使用的ORM中的运算符啊,没错,最开始的时候我们就已经说了,MongoDB的操作就是很类似ORM的

二.MongoDB中的那些个update修改器: $inc $set $unset $push $pull

在此前的update中,我们用过$set,对数据进行过更新,其实在update中还存在很多的$关键字,我们把update中的这些关键字叫做 修改器

修改器很多,这里挑一些重要的来说一说:

1.$inc : Python中的  变量 += 1 , 将查询到的结果 加上某一个值 然后保存

还是刚才Collection数据,我们来试一下$inc , 让不及格的 "路飞学城2" 变成 60 分

成功了 , {$inc:{"score":1}}的意思是,"score"的原有数值上面 +1,那我们再来实验一次,把60改为20,这怎么操作呢,其实可以理解为在 60 上加一个 -40

又成功了 , {$inc:{"score":-20}}也来越喜欢英俊潇洒又不会翻车的自己了

$inc 的用法是不是很简单啊,就是原有基础上在增加多少对吧

2.$set : 此前我们已经提到过 $set 的用法和特性(没有就自动添加一条)了

再做一个例子:把 "score" 为 100 分 的 "english_name" 赋值为 "LuffyCity"

再把 "score" 为 20 分的 "score" 赋值为 59 分

完美~

3.$unset : 用来删除Key(field)的

做一个小例子 : 刚才我们有一个新的"english_name" 这个field ,现在我们来删除它

成功了! {$unset:{"english_name" : 1}} 就是删除 "english_name" 这个 field 相当于 关系型数据库中删除了 字段

4. $push : 它是用来对Array (list)数据类型进行 增加 新元素的,相当于我们大Python中 list.append() 方法

做一个小例子 :首先我们要先对原有数据增加一个Array类型的field:

使用update $set 的方法只能为Document中的第一条添加

使用updateMany $set 的方法 可以为所有满足条件的 Document 添加 "test_list" , 注意我这里的条件为空 " {} " 就算是为空,也要写上"{}" 记住记住记住

接下来我们就要队列表进行添加了: 将 "score" 为 100 的Document 中"test_list" 添加一个 6

$push 是在 Array(list) 的尾端加入一个新的元素  {$push : {"test_list" : 6}}

5.$pull : 有了$push 对Array类型进行增加,就一定有办法对其内部进行删减,$pull 就是指定删除Array中的某一个元素

做一个例子: 把我们刚才$push进去的 6 删除掉

问题来了,如果 Array 数据类型中 如果有 多个 6 怎么办呢?

全部删掉了.....

得出了一个结论,只要满足条件,就会将Array中所有满足条件的数据全部清除掉

6. $pop : 指定删除Array中的第一个 或 最后一个 元素

做个小例子: 删除"score" 等于 100 分  test_list 的最后一个元素

怎么删除第一个呢?

{$pop:{"test_list" : -1}}  -1 代表最前面, 1 代表最后边 (这和我们大Python正好相反) 记住哦

原文地址:https://www.cnblogs.com/feifeifeisir/p/10279319.html

时间: 2024-11-09 03:08:33

4,MongoDB 之 $关键字 及 $修改器 $set $inc $push $pull $pop MongoDB的相关文章

MongoDB-比较符及修改器

数学比较符 $lt 小于 $lte 小于等于 $gt 大于 $gte 大于等于 $eq 等于 $ne 不等于 所有数据 > db.stutent.find() }) { "_id" : ObjectId("5d2ecd3d14ff51d814e40361"), "name" : "henry", "age" : 16, "sex" : "female", &qu

MongoDB快速入门学习笔记5 MongoDB的文档修改操作

db.集合名称.update({query},{update},upsert, multi})query:过滤条件update:修改内容upsert:如果不存在查询条件查出的记录,是否插入一条数据,默认是falsemulti:是否只修改查询条件查出的第一条记录,默认是false > db.student.update({_id:1}, {name:"zhang"}) WriteResult({ "nMatched" : 1, "nUpserted&q

OGEngine_修改器

前言 Modifier的作用是以编程的方式来修改Entity对象的关键属性.开发者可以用它来修改Entity的位置.缩放.颜色.角度.透明值等.介绍各种可用的Modifier类型,并讲述如何将Modifier对象组合成序列来使用. 修改的效果将会在Entity 的 registerEntityModifier之后执行,若被添加Modifier的Entity还没被添加至场景或者图层(没执行attachChild方法),那么效果直到Entity被添加到场景才会执行. 典型用例 entity.regi

用aauto做游戏修改器

import win.ui; import process; //以下自动生成,不用看. /*DSG{{*/ var winform = ..win.form(text="AAuto Form";right=215;bottom=95) winform.add( button={cls="button";text="修改";left=120;top=16;right=205;bottom=57;z=1}; edit1={cls="edi

【MongoDB学习笔记8】深入MongoDB的更新(update)操作:修改器$set

MongoDB中文档存入数据库后用update方法更新文档,update方法有两个参数,例如 update(args1,args2) args1是指查询文档的条件: args2是指对查询到的文档进行什么样的修改: 一.文档替换 > joe1= db.post.findOne({"age":20}) {         "_id" :  ObjectId("54a530c3ff0df3732bac1680"),         "i

mongodb的修改器

在mongodb中通常文档只会有一部分要更新,利用原子的更新修改器,可以做到只更新文档的一部分键值,而且更新极为高效,更新修改器是种特殊的键,用来指定复杂的更新操作,比如调整.增加.或者删除键,还可以操作数组和内嵌文档.增加.修改或删除键的时候,应该使用$修改器.要把"foo"的值设备"bar",常见的错误做法如下: db.coll.update(criteria,{"foo":"bar"}) 这种情况是不对的,实际上这种做法

MongoDB之修改器

MongoDB之修改器 $set  简单粗暴  {name: valuel} 直接将key对应的值赋值给value. db.xxoo.insert({}, {set: {key: value}}) # 相当于python中的dict['name'] = value $unset  简单粗暴的删除字段 {$unset: {name: 1}} # 相当于python中的del dict['name'] 0 原文地址:https://www.cnblogs.com/ZN-225/p/10174585.

mongodb修改器(3)

1.更新 db.persons.update({name:"caohui"},{id:2});只更新一条,直接替换更新 db.persons.update({name:"caohui"},{id:2},true);只更新一条,直接替换更新,如果不存在则insert 2.全量更新 db.persons.update({name:"caohui"},{$set:{id:2}},false,true);全量局部更新 3.$set           {

【MongoDB学习笔记9】深入MongoDB的更新(update)操作:修改器$inc

ongoDB中文档存入数据库后用update方法更新文档,update方法有两个参数,例如 update(args1,args2) args1是指查询文档的条件: args2是指对查询到的文档进行什么样的修改: $inc用来增加已用的键值,如果键不存在就创建: $Inc只能修改的键值必须为整数.长整型和双精度浮点型,不能是其他类型. 使用$inc增加键值: > db.post.findOne({"id":0})    {             "_id" :