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

Wesley13
• 阅读 633

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

又成功了 , {$inc:{"score":-20}},$inc 的用法很简单,就是原有基础上在增加多少

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

全部删掉了.....

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

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

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

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

怎么删除第一个呢?

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

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

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Jacquelyn38 Jacquelyn38
3年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
CuterCorley CuterCorley
3年前
C语言入门系列之4.分支结构程序-关系、逻辑运算和if、switch语句
一、关系运算符和表达式关系运算符:又叫比较运算符,在程序中经常需要比较两个量的大小关系,以决定程序下一步的工作。比较两个量的运算符称为关系运算符。1.关系运算符及其优先顺序在C语言中有以下关系运算符:<小于<小于或等于\大于\大于或等于等于不等于关系运算符都是双目运算
Stella981 Stella981
3年前
HBase Filter及对应Shell
http://www.cnblogs.com/skyl/p/4807793.html比较运算符CompareFilter.CompareOp比较运算符用于定义比较关系,可以有以下几类值供选择:EQUAL相等GREATER大于GREATER\_OR\_EQUAL大于等于LESS小于LESS
Wesley13 Wesley13
3年前
MongoDB的数据类型
一.MongoDB之丰富多彩的数据类型世界首先我们要先了解一下MongoDB中有什么样的数据类型:Object ID:Documents自生成的\_idString:字符串,必须是utf8Boolean:布尔值,true或者false(这里有坑哦~在我们大Python中TrueFalse首字母大写)Integer
Wesley13 Wesley13
3年前
004讲:改进我们的小游戏
1、Python比较操作符:       大于:                  大于等于:          小于:          <       小于等于:   <       等于:                 不等于:      !   以上操作符成立时返回T
Stella981 Stella981
3年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
小万哥 小万哥
1年前
Python 条件和 if 语句
Python支持来自数学的通常逻辑条件:等于:ab不等于:a!b小于:a<b小于或等于:ab大于或等于:ab这些条件可以以多种方式使用,最常见的是在"if语句"和循环中使用。if语句是使用if关键字编写的。示例,if语句:pythona33b200ifba
小万哥 小万哥
11个月前
C 语言教程:条件和 if...else 语句
C语言中的条件和if...else语句您已经学习过C语言支持数学中的常见逻辑条件:小于:a<b小于或等于:ab大于或等于:ab等于:ab不等于:a!b您可以使用这些条件来根据不同的决策执行不同的操作。C语言具有以下条件语句:使用if来指定要执行的代码块,如
小万哥 小万哥
7个月前
C++ 条件与 If 语句:掌握逻辑判断与流程控制精髓
C条件和If语句您已经知道C支持数学中的常见逻辑条件:小于:a<b小于或等于:ab大于或等于:ab等于:ab不等于:a!b您可以使用这些条件来针对不同的决定执行不同的操作。C具有以下条件语句:使用if来指定一个代码块,如果指定的条件为true,