【mongodb】比较符及修改器
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】比较符及修改器相关推荐
- mongodb 学习笔记 2 --- 修改器
修改器是为了爱update文档时,不需要传入整个文档就能修改当前文档的某个属性值,修改器用法如下: 假设数据库中foo集合中存在如下文档:{"name":"jack&qu ...
- MongoDB(课时18 修改器)
3.4.3.2 修改器(原子操作) 对MongoDB数据库而言,数据的修改会牵扯到内容的变更,结构的变更(包含数组),所以在MongoDB在设计的时候就提供有一系列的修改器的应用,那么像之前使用的&q ...
- MongoDB 之 $关键字 及 $修改器 $set $inc $push $pull $pop MongoDB - 4
MongoDB中类似这样的关键字有很多, $lt $gt $lte $gte 等等,这么多我们也不方便记,这里我们说说几个比较常见的 一.查询中常见的 等于 大于 小于 大于等于 小于等于 等于 : ...
- MongoDB update修改器: 针对Fields的$修改器 $inc $set $unset
MongoDB update修改器: $inc $set $unset $push $pull $pop 针对Fields的$修改器 $set: { $set: { key: value } } $s ...
- [转载]MongoDB的$inc修改器
MongoDB的$inc修改器相当于编程语言中的 "+=" "$inc"只能用于操作数值类型的数据,包括整数.长整数和双精度浮点数,用于其他类型的数据会导致操作 ...
- MongoDB数组修改器更新数据
MongoDB数组修改器更新数据 这里,我们将了解一下数组修改器.数组,是我们经常看到和使用到的且非常有用的数据结构:它不仅可以通过索进行引用,还可以作为集合来使用.数组修改器,顾名思义,它是用来修改 ...
- MongoDB 查询篇 及 数组修改器更新数据
查询方法 1. 查询方法 mongoose查询使用最基础的方法就是find.findOne方法,前者查询所有满足条件的值,后者取满足条件的某一个值. 2. 查询条件 mongoose查询条件其实就是在 ...
- MongoDB数据库更新操作的十种修改器的使用
提示:下面代码中所操作的集合都已经插入到数据库中了,只是对MongoDB十种修改器的基本介绍 # 首先贴出一个每次修改完以后都会使用的语句:查询 db.student.find({"name ...
- Mongodb数据库中修改器$push和$addToSet的相同点和不同点
Mongodb数据库中修改器$push和$addToSet的相同点和不同点 对于Mongodb数据库而言,数据的修改会牵扯到内容的变更,结构的变更(数组的变更),所以Mongodb数据库设计的时候就提 ...
最新文章
- ECMAScript Query实例
- 为什要使用预编译SQL?(转)
- 「Python」10个python项目
- 深入理解java垃圾回收机制
- 20080331 - What is a PID, How is it useful when troubleshooting a system
- 1056. 组合数的和(15)
- group client policy无法登录,谢绝访问
- html 进入效果,用css3实现简单的进入效果
- apache php 500,apache出现500错误的原因是什么
- position小结
- 新颖性搜索(Novelty Search,NS)算法实践——利用NS算法解决迷宫导航问题
- 数学猜想验证步骤_高考数学19种答题方法,数学130+必备技能,附解题技巧word版!...
- JavaScript高级程序设计 总结(一)详细版
- 文件下载和二进制文件(图片、mp4视频)预览响应头的设置(防止中文名名乱码)
- 动态规划 - 切钢条 (python)
- 计算机系统硬件有哪些重要的部件呢?
- [摄影基本学习]-01-认识相机(从零开始手把手教你学摄影)
- 2月9日,30秒知全网,精选7个热点
- Navicat 12 for MySQL激活方法(注册机)
- 密码爆破工具————Medusa(美杜莎)介绍
热门文章
- 微信 php 类,微信接口封装类(PHP)
- html精灵图坐标如何确定,CSS实现精灵图与字体图标
- 硅片/SOI绝缘硅片介绍,SOI圆片特点
- 2022-2028全球及中国全耗尽绝缘体上硅(FD-SOI)行业研究调查分析报告
- 北京大学计算机就业报告,【计算机考研就业】北京大学2017年毕业生就业质量年度报告...
- 来自谷歌大脑的SpineNet:一种非常规的主干结构
- 模拟输出质点轨迹坐标
- php怎么在图像中显示文字,怎么在图片上面加文字 人物图片中加文字或特效
- 关于可控核聚变的想法
- 中电资讯-政府工作报告提出2022“金融新任务”;代表共话数字经济;代表提议建立全国统一金融信息数据库