MongoDB-比较符及修改器

数学比较符

$lt        小于
$lte       小于等于
$gt        大于
$gte       大于等于
$eq        等于
$ne        不等于

所有数据

> db.stutent.find()                                                     })
{ "_id" : ObjectId("5d2ecd3d14ff51d814e40361"), "name" : "henry", "age" : 16, "sex" : "female", "hobby" : "喝酒" }
{ "_id" : ObjectId("5d2eeb8414ff51d814e40362"), "name" : "henry", "sex" : "female", "hobby" : "喝酒" }
{ "_id" : ObjectId("5d2eeb8414ff51d814e40363"), "name" : "egon", "age" : 18 }
{ "_id" : ObjectId("5d2eec9314ff51d814e40364"), "name" : "alex", "age" : 50 }
{ "_id" : ObjectId("5d2eee1314ff51d814e40365"), "name" : "小漩涡", "age" : 30 }
{ "_id" : ObjectId("5d2eee1314ff51d814e40366"), "name" : "500ml", "age" : 10 }

大于

db.stutent.find({age:{$gt:30}})# 查询结果
{ "_id" : ObjectId("5d2eec9314ff51d814e40364"), "name" : "alex", "age" : 50 }

大于等于

db.stutent.find({age:{$gte:30}})# 查询结果
{ "_id" : ObjectId("5d2eec9314ff51d814e40364"), "name" : "alex", "age" : 50 }
{ "_id" : ObjectId("5d2eee1314ff51d814e40365"), "name" : "小漩涡", "age" : 30 }

小于

db.stutent.find({age:{$lt:30}})# 查询结果
{ "_id" : ObjectId("5d2ecd3d14ff51d814e40361"), "name" : "henry", "age" : 16, "sex" : "female", "hobby" : "喝酒" }
{ "_id" : ObjectId("5d2eeb8414ff51d814e40363"), "name" : "egon", "age" : 18 }
{ "_id" : ObjectId("5d2eee1314ff51d814e40366"), "name" : "500ml", "age" : 10 }

小于等于

db.stutent.find({age:{$lt:30}})# 查询结果
{ "_id" : ObjectId("5d2ecd3d14ff51d814e40361"), "name" : "henry", "age" : 16, "sex" : "female", "hobby" : "喝酒" }
{ "_id" : ObjectId("5d2eeb8414ff51d814e40363"), "name" : "egon", "age" : 18 }
{ "_id" : ObjectId("5d2eee1314ff51d814e40366"), "name" : "500ml", "age" : 10 }

等于的两种方式

> db.stutent.find({age:{$eq:30}})
{ "_id" : ObjectId("5d2eee1314ff51d814e40365"), "name" : "小漩涡", "age" : 30 }> db.stutent.find({age:30})
{ "_id" : ObjectId("5d2eee1314ff51d814e40365"), "name" : "小漩涡", "age" : 30 }

不等于

> db.stutent.find({age:{$ne:30}}){ "_id" : ObjectId("5d2ecd3d14ff51d814e40361"), "name" : "henry", "age" : 16, "sex" : "female", "hobby" : "喝酒" }
{ "_id" : ObjectId("5d2eeb8414ff51d814e40362"), "name" : "henry", "sex" : "female", "hobby" : "喝酒" }
{ "_id" : ObjectId("5d2eeb8414ff51d814e40363"), "name" : "egon", "age" : 18 }
{ "_id" : ObjectId("5d2eec9314ff51d814e40364"), "name" : "alex", "age" : 50 }
{ "_id" : ObjectId("5d2eee1314ff51d814e40366"), "name" : "500ml", "age" : 10 }

修改器

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

inc

将查询结果加上某个值后保存,就是原有基础上在增加多少或减少多少

# 给名字为500ml人的年龄加上8
db.stutent.update({name:"500ml"},{$inc:{age:+8}})# 给名字为500ml人的年龄减去8
db.stutent.update({name:"500ml"},{$inc:{age:-8}})

set

更新属性没有就添加一条

# 将名字为500ml的人名字改成大呲花
db.stutent.update({name:"500ml"},{$set:{name:"大呲花"}})

unset

用来删除Key(field)的

# 删除名字henry中的sex为female的字段
db.stutent.update({name:"henry"},{$unset:{sex:"female"}})

push

针对 Array == list 操作

在Array的最后一个位置中增加数据

$push == append()

# 给小漩涡添加个字段,属性为列表
db.stutent.update({name:"小漩涡"},{$set:{test_list:[1,2,3,4,5]}}){ "_id" : ObjectId("5d2eee1314ff51d814e40365"), "name" : "小漩涡", "age" : 30, "test_list" : [ 1, 2, 3, 4, 5 ] }# 可以为所有满足条件的 Document 添加 "test_list"
db.stutent.update({},{$set:{test_list:[1,2,3,4,5]}})
# 注意我这里的条件为空 " {} " 就算是为空,也要写上"{}" 记住记住记住# --------------------------------------------------------------------------
# 用push给test_list中追加元素
db.stutent.update({name:"小漩涡"},{$push:{test_list:1000}}){ "_id" : ObjectId("5d2eee1314ff51d814e40365"), "name" : "小漩涡", "age" : 30, "test_list" : [ 1, 2, 3, 4, 5, 1000 ] }

pushAll

$pushAll == extend()

迭代追加

> db.stutent.find({name:"小漩涡"})
{ "_id" : ObjectId("5d2eee1314ff51d814e40365"), "name" : "小漩涡", "age" : 30, "hobby" : [ "喝酒", "烫头" ] }> db.stutent.update({name:"小漩涡"},{$pushAll:{hobby:[1,2,3,4,5]}})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })> db.stutent.find({name:"小漩涡"})                              }})
{ "_id" : ObjectId("5d2eee1314ff51d814e40365"), "name" : "小漩涡", "age" : 30, "hobby" : [ "喝酒", "烫头", 1, 2, 3, 4, 5 ] }

pull

$pull == remove()

删除Array中的指定元素

db.stu.update({name:"小黑"},{ $pull: { hoobys:"渣男" } })

pullAll

删除Array中的多个元素

> db.stutent.find({name:"小漩涡"})
{ "_id" : ObjectId("5d2eee1314ff51d814e40365"), "name" : "小漩涡", "age" : 30, "hobby" : [ "喝酒", "烫头", 1, 2, 3, 4, 5 ] }> db.stutent.update({name:"小漩涡"},{$pullAll:{hobby:[1,2,3,4,5]}})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })> db.stutent.find({name:"小漩涡"})
{ "_id" : ObjectId("5d2eee1314ff51d814e40365"), "name" : "小漩涡", "age" : 30, "hobby" : [ "喝酒", "烫头" ] }

pop

$pop约等于pop()

删除Array中的第一个或者最后一个元素 正数是倒序删除 负数是正序删除

> db.stutent.find({name:"小漩涡"})
{ "_id" : ObjectId("5d2eee1314ff51d814e40365"), "name" : "小漩涡", "age" : 30, "test_list" : [ 1, 2, 3, 4, 5, 1000 ], "hobby" : [ "喝酒", "烫头" ] }> db.stutent.update({name:"小漩涡"},{$pop:{hobby:-1}})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })> db.stutent.find({name:"小漩涡"})
{ "_id" : ObjectId("5d2eee1314ff51d814e40365"), "name" : "小漩涡", "age" : 30, "test_list" : [ 1, 2, 3, 4, 5, 1000 ], "hobby" : [ "烫头" ] }

$ 字符特殊用法

在MongoDB中有一个非常神奇的符号 "$"

"$"  在 update 中 加上关键字 就 变成了 修改器

其实 "$" 字符 独立出现也是有意义的 , 我起名叫做代指符

存储当前(Array)符合条件的元素下标索引 ,只能存储最外层的 索引位置 

> db.stutent.find({name:"小漩涡"})
{ "_id" : ObjectId("5d2eee1314ff51d814e40365"), "name" : "小漩涡", "age" : 30, "test_list" : [ 1, 2, 3, 4, 5, 1000 ], "hobby" : [ "烫头" ] }# 将test_list中的5改成五
# "test_list.$"必须加引号
> db.stutent.update({test_list:5},{$set:{"test_list.$":"五"}})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })> db.stutent.find({name:"小漩涡"})                         ) )
{ "_id" : ObjectId("5d2eee1314ff51d814e40365"), "name" : "小漩涡", "age" : 30, "test_list" : [ 1, 2, 3, 4, "五", 1000 ], "hobby" : [ "烫头" ] }# 先查询到hobbys中5的 位置(4) ,将位置存储在 $==(4) 字符中 然后根据$字符的位置(4)更改数据

返回值

1
2
3
# 创建一个Chats
    chat_id = MDB.Chats.insert_one({"user_list": [], "chat_list": []})
    print(chat_id.inserted_id,"inserted_id======="# 返回值的就是创建后的ObjectId对象

# ObjectId("5d35b9887c22516fade818d9")

转载于:https://www.cnblogs.com/youxiu123/p/11493225.html

【mongodb】比较符及修改器相关推荐

  1. mongodb 学习笔记 2 --- 修改器

    修改器是为了爱update文档时,不需要传入整个文档就能修改当前文档的某个属性值,修改器用法如下: 假设数据库中foo集合中存在如下文档:{"name":"jack&qu ...

  2. MongoDB(课时18 修改器)

    3.4.3.2 修改器(原子操作) 对MongoDB数据库而言,数据的修改会牵扯到内容的变更,结构的变更(包含数组),所以在MongoDB在设计的时候就提供有一系列的修改器的应用,那么像之前使用的&q ...

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

    MongoDB中类似这样的关键字有很多, $lt $gt $lte $gte 等等,这么多我们也不方便记,这里我们说说几个比较常见的 一.查询中常见的 等于 大于 小于 大于等于 小于等于 等于 : ...

  4. MongoDB update修改器: 针对Fields的$修改器 $inc $set $unset

    MongoDB update修改器: $inc $set $unset $push $pull $pop 针对Fields的$修改器 $set: { $set: { key: value } } $s ...

  5. [转载]MongoDB的$inc修改器

    MongoDB的$inc修改器相当于编程语言中的 "+=" "$inc"只能用于操作数值类型的数据,包括整数.长整数和双精度浮点数,用于其他类型的数据会导致操作 ...

  6. MongoDB数组修改器更新数据

    MongoDB数组修改器更新数据 这里,我们将了解一下数组修改器.数组,是我们经常看到和使用到的且非常有用的数据结构:它不仅可以通过索进行引用,还可以作为集合来使用.数组修改器,顾名思义,它是用来修改 ...

  7. MongoDB 查询篇 及 数组修改器更新数据

    查询方法 1. 查询方法 mongoose查询使用最基础的方法就是find.findOne方法,前者查询所有满足条件的值,后者取满足条件的某一个值. 2. 查询条件 mongoose查询条件其实就是在 ...

  8. MongoDB数据库更新操作的十种修改器的使用

    提示:下面代码中所操作的集合都已经插入到数据库中了,只是对MongoDB十种修改器的基本介绍 # 首先贴出一个每次修改完以后都会使用的语句:查询 db.student.find({"name ...

  9. Mongodb数据库中修改器$push和$addToSet的相同点和不同点

    Mongodb数据库中修改器$push和$addToSet的相同点和不同点 对于Mongodb数据库而言,数据的修改会牵扯到内容的变更,结构的变更(数组的变更),所以Mongodb数据库设计的时候就提 ...

最新文章

  1. ECMAScript Query实例
  2. 为什要使用预编译SQL?(转)
  3. 「Python」10个python项目
  4. 深入理解java垃圾回收机制
  5. 20080331 - What is a PID, How is it useful when troubleshooting a system
  6. 1056. 组合数的和(15)
  7. group client policy无法登录,谢绝访问
  8. html 进入效果,用css3实现简单的进入效果
  9. apache php 500,apache出现500错误的原因是什么
  10. position小结
  11. 新颖性搜索(Novelty Search,NS)算法实践——利用NS算法解决迷宫导航问题
  12. 数学猜想验证步骤_高考数学19种答题方法,数学130+必备技能,附解题技巧word版!...
  13. JavaScript高级程序设计 总结(一)详细版
  14. 文件下载和二进制文件(图片、mp4视频)预览响应头的设置(防止中文名名乱码)
  15. 动态规划 - 切钢条 (python)
  16. 计算机系统硬件有哪些重要的部件呢?
  17. [摄影基本学习]-01-认识相机(从零开始手把手教你学摄影)
  18. 2月9日,30秒知全网,精选7个热点
  19. Navicat 12 for MySQL激活方法(注册机)
  20. 密码爆破工具————Medusa(美杜莎)介绍

热门文章

  1. 微信 php 类,微信接口封装类(PHP)
  2. html精灵图坐标如何确定,CSS实现精灵图与字体图标
  3. 硅片/SOI绝缘硅片介绍,SOI圆片特点
  4. 2022-2028全球及中国全耗尽绝缘体上硅(FD-SOI)行业研究调查分析报告
  5. 北京大学计算机就业报告,【计算机考研就业】北京大学2017年毕业生就业质量年度报告...
  6. 来自谷歌大脑的SpineNet:一种非常规的主干结构
  7. 模拟输出质点轨迹坐标
  8. php怎么在图像中显示文字,怎么在图片上面加文字 人物图片中加文字或特效
  9. 关于可控核聚变的想法
  10. 中电资讯-政府工作报告提出2022“金融新任务”;代表共话数字经济;代表提议建立全国统一金融信息数据库