【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中的這些關鍵字叫作 修改器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")
相關文章
相關標籤/搜索