數學比較符
$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")