数学比较符
$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中的这些关键字叫作 修改器html
inc
将查询结果加上某个值后保存,就是原有基础上在增长多少或减小多少python
# 给名字为500ml人的年龄加上8 db.stutent.update({name:"500ml"},{$inc:{age:+8}}) # 给名字为500ml人的年龄减去8 db.stutent.update({name:"500ml"},{$inc:{age:-8}})
set
更新属性没有就添加一条app
# 将名字为500ml的人名字改为大呲花 db.stutent.update({name:"500ml"},{$set:{name:"大呲花"}})
unset
用来删除Key(field)的post
# 删除名字henry中的sex为female的字段 db.stutent.update({name:"henry"},{$unset:{sex:"female"}})
push
针对 Array == list 操做url
在Array的最后一个位置中增长数据spa
$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()
迭代追加3d
> 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中的指定元素code
db.stu.update({name:"小黑"},{ $pull: { hoobys:"渣男" } })
pullAll
删除Array中的多个元素htm
> 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")