数学比较符

$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)更改数据

返回值

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

MongoDB-比较符及修改器的更多相关文章

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

    一.查询中常见的  等于   大于  小于  大于等于  小于等于 等于:用':' 大于:用'$gt' 小于:用'$lt' 大于等于:用'$gte' 小于等于:用'$lte' MongoDB的操作就是 ...

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

    我们在之前的 MongoDB 之 手把手教你增删改查 MongoDB - 2 中提到过 $set 这个系统关键字,用来修改值的对吧 但是MongoDB中类似这样的关键字有很多, $lt $gt $lt ...

  3. MongoDB(课时18 修改器)

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

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

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

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

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

  6. Mongodb更新数组$pull修饰符 (mongodb 修改器($inc/$set/$unset/$push/$pop/upsert))

    mongodb 修改器($inc/$set/$unset/$push/$pop/upsert))   https://www.jb51.net/article/112588.htm http://bl ...

  7. python 全栈开发,Day124(MongoDB初识,增删改查操作,数据类型,$关键字以及$修改器,"$"的奇妙用法,Array Object 的特殊操作,选取跳过排序,客户端操作)

    一.MongoDB初识 什么是MongoDB MongoDB 是一个基于分布式文件存储的数据库.由 C++ 语言编写.旨在为 WEB 应用提供可扩展的高性能数据存储解决方案. MongoDB 是一个介 ...

  8. mongodb的修改器

    在mongodb中通常文档只会有一部分要更新,利用原子的更新修改器,可以做到只更新文档的一部分键值,而且更新极为高效,更新修改器是种特殊的键,用来指定复杂的更新操作,比如调整.增加.或者删除键,还可以 ...

  9. mongodb修改器

    mongodb修改器 转载自:http://blog.csdn.net/mcpang/article/details/7752736 mongodb修改器(\(inc/\)set/\(unset/\) ...

随机推荐

  1. ckplayer获取播放时长一

    <div id="a1"></div> <div id="nowTime"></div> <script ...

  2. vue-cli3 使用雪碧图

    //vue.config.js const path = require("path"); const SpritesmithPlugin = require("webp ...

  3. Ubuntu安装rpm

    # sudo apt-get install alien # sudo alien xxx.rpm # sudo dpkg -i xxx.deb

  4. iOS登录及token的业务逻辑

    登录的业务逻辑 { http:是短连接. 服务器如何判断当前用户是否登录? // 1. 如果是即时通信类:长连接. // 如何保证服务器跟客户端保持长连接状态? // "心跳包" ...

  5. 【vue开发】vue导出Excel表格教程&demo

    前端工作量最多的就是需求,需求就是一直在变,比如当前端数据写完之后,需要用Excel把数据下载出来:再比如前端在没有数据库想写些demo玩时,也是很好的选择. 第一步安装依赖包,修改配置 1.装依赖: ...

  6. flask自有转换器:int、float、path。默认string

    flask自有转换器:int.float.path.默认string # 路由传递的参数默认当做string处理,这里指定int,尖括号中冒号后面的内容是动态的 # -*- coding: utf-8 ...

  7. Ubuntu 文件和目录常用命令

    目标 查看目录内容 ls 切换目录 cd 创建和删除操作 touch rm mkdir 拷贝和移动文件 cp mv 查看文件内容 cat more grep 其他 echo 重定向 > 和 &g ...

  8. Image Processing and Analysis_21_Scale Space:Scale-space filtering——1987

    此主要讨论图像处理与分析.虽然计算机视觉部分的有些内容比如特 征提取等也可以归结到图像分析中来,但鉴于它们与计算机视觉的紧密联系,以 及它们的出处,没有把它们纳入到图像处理与分析中来.同样,这里面也有 ...

  9. 【Day5】2.反爬策略之代理IP

    import urllib.request as ur proxy_address = ur.urlopen('http://api.ip.data5u.com/dynamic/get.html?or ...

  10. 使用fastjson统一序列化响应格式

    摘要:其实很简单的处理方式,只不够优雅,或者说没有找到fastjson为其提供便捷的处理方式.因此记录下处理该问题的过程. 目标:将所有api请求,即响应为APPLICATION_JSON的内容做统一 ...