日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

MongoDB第二天

發布時間:2023/11/29 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MongoDB第二天 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

集合的操作:

db.表名稱

show tables / collection

db.表名.drop()

文檔的操作:

插入數據

db.表名.insert({"name":"jerry"})

db.insertMany([{"name":"sb",...}])

var ul = {"name":"sb"}

db.sb.insert(ul)

db.sb.save()如果沒有則創建,有則覆蓋

查詢數據

db.sb.find({""篩選條件""},{""控制要顯示的字段":1"})

比較運算符

gt大于 lt小于? gte大于等于? lte小于等于? ne不等于

邏輯運算符:

and or not?

db.sb.find({"name":"sb","_id":23})? ? ? 等同于and

db.sb.find({"$or":[{"name":"sb"},{"name":"lj"}]})

查詢id為偶數的

db.user.find({"_id":{"$mod":[2,0]}})

取反

db.user.find({"_id":{"$not":{"$mod":[2,1]}}})

成員運算符:

id 在列表1,2,3,4中的

db.user.find({"_id":{"$in":[1,23,4]}})

不在列表中的

db.user.find({"_id":{"$nin":[1,23,4]}})

正則:

db.user.find({"name":/^sb.*?b$/i})

更新修改數據

update()方法用于更新已存在的文檔,語法格式如下:

db.sb.update(<query>,<update>,{upsert:<boolean>,multi:<boolean>,writeConcern:<document>})

參數說明:

query:相當于where條件

update:update的對象和一些更新的操作符($inc)

upsert:可選,默認為false,代表如果不存在update的記錄則不更新也不插入,設置為true代表插入

multi:可選,默認為false,代表只更新找到的第一條記錄,設為true,代表更新找到的所有記錄

writeConcern:可選,拋出異常的級別

更新操作是不可分割的:若兩個更新同時發送,先到達服務器的先執行,然后執行另外一個,不會破壞文檔

除非是刪除,否則_id是始終不會改變的

1.覆蓋式

db.user.update({"age":20},{"name":"sb","hobbies":[1,2,3]})

是使用新的數據覆蓋原來的數據

2.一種最簡單的更新就是用一個新的文檔完全替換匹配的文檔

這適用于大規模式遷移的情況,

var obj = db.user.findOne({"_id":2})

obj.username=obj.name+"sb"

delete obj.age

db.user.update({"_id":2,obj})

設置set

通常文檔只會有一部分需要更新,可以使用原子性的更新修改器,指定對文檔中的某些字段進行更新.

更新修改器是種特殊的鍵,用來指定復雜的更新操作,比如修改,增加或者刪除

1.db.user.update({"_id":2},{"$set":{"name":"wxx"}})

2.沒有匹配成功則新增一條

db.user.update({"_id":6},{"$set":{"name":"egon","age":80}},{"upsert":true})

3.默認只改匹配成功的第一條,{"multi":該多條}

db.user.update({"_id":{"$gt":3}},{"$set":{"gae":28}},{"multi":true})

4.修改內嵌文檔,把名字為alex的人所在的地址國家改為japan

db.user.update({'name':'alex'},{"$set":{"addr.country":"japan"}})

5.把名字為alex的人的第二個愛好改成嫖

db.user.update({"name":"alex"},{'$set':{'hobbies.1':"piao"}})

6.刪除alex的愛好,$unset

db.user.update({'name':'alex'},{'$unset':{"hobbies":""}})

增加和減少 $inc

1.所有人的年齡增加一歲

db.user.update({},{"$inc":{"age":1}},{"multi":true})

2.所有人年齡減少5歲

db.user.update({},{"$inc":{"age":-5}},{"multi":true})

添加刪除數組元素

往數組內添加元素:$push

1.為名字為yuanhao的人添加一個愛好read

db.user.update({"name":"yuanhao"},{"$push":{"hobbies":"read"}})

2.為名字為yuanhao的人一次添加多個愛好tea,dancing

db.user.update({"name":"yuanhao"},{"$push":{"hobbies":{"$each":["tea","dancing"]}}})

3按照位置只能從開頭或結尾刪除元素:$pop

3.{"$pop":{"key":1}}從數組末尾刪除一個元素

db.user.update({"name":"yuanahao"},{"$pop":{"hobbies":1}})

4.{"$pop":{"key":-1}}從頭部刪除

db.user.update({"name":"yuanhao"},{"$pop":{"hobbies":-1}})

5.按照條件刪除元素:$pull 把符合條件的統統刪掉,而$pop只能從兩端刪除

db.user.update({"addr.country":"China"},{"$pull":{"hobbies":"read"}},{"multi":true})

避免添加重復:$addToSet

自動去除重復

db.user.insert({"_id":1},"urls":[])

db.user.update({"_id":1},{"$addToSet":{"urls":'http://129.0.0.1.com'}})

其他

1.限制大小$slice 直流最后幾個

db.user.update({"_id":5},{"$push":{"hobbies":{"$each":['rad','write','dacing'],

'$slice":-2'}}})

#2、了解:排序

The $sort element value must be either 1 or -1"

db.user.update({"_id":5},{

"$push":{"hobbies":{

"$each":["read",'music','dancing'],
"$slice":-1,
"$sort":-1
}
})

刪除數據

1.刪除多個中的一個

db.user.deleteOne({"age":18})

2.刪除國家為China的全部

db.user.deleteMany({})

?

轉載于:https://www.cnblogs.com/suncunxu/p/10718494.html

總結

以上是生活随笔為你收集整理的MongoDB第二天的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。