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

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/387843.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/387843.shtml
英文地址,請注明出處:http://en.pswp.cn/news/387843.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Python 主成分分析PCA

Python 主成分分析PCA 主成分分析&#xff08;PCA&#xff09;是一種基于變量協方差矩陣對數據進行壓縮降維、去噪的有效方法&#xff0c;PCA的思想是將n維特征映射到k維上&#xff08;k<n&#xff09;&#xff0c;這k維特征稱為主元&#xff0c;是舊特征的線性組合&#xf…

小程序 國際化_在國際化您的應用程序時忘記的一件事

小程序 國際化The hidden bugs waiting to be found by your international users您的國際用戶正在等待發現的隱藏錯誤 While internationalizing our applications, we focus on the things we can see: text, tool-tips, error messages, and the like. But, hidden in our …

三. 性能測試領域

能力驗證&#xff1a; 概念&#xff1a;系統能否在A條件下具備B能力 應用&#xff1a;為客戶進行系統上線后的驗收測試&#xff0c;作為第三方對一個已經部署系統的性能驗證 特點&#xff1a;需要在已確定的環境下運行 需要根據典型場景設計測試方案和用例 一個典型場景包括操…

PCA主成分分析Python實現

作者&#xff1a;拾毅者 出處&#xff1a;http://blog.csdn.net/Dream_angel_Z/article/details/50760130 Github源碼&#xff1a;https://github.com/csuldw/MachineLearning/tree/master/PCA PCA&#xff08;principle component analysis&#xff09; &#xff0c;主成分分…

scp

將文件或目錄從本地通過網絡拷貝到目標端。拷貝目錄要帶 -r 參數 格式&#xff1a;scp 本地用戶名IP地址:文件名1 遠程用戶名IP地址:文件名 2 例&#xff1a; scp media.repo root192.168.20.32:/etc/yum.repos.d/ 將遠程主機文件或目錄拷貝到本機&#xff0c;源和目的參數調換…

robo 3t連接_使用robo 3t studio 3t連接到地圖集

robo 3t連接Robo 3T (formerly Robomongo) is a graphical application to connect to MongoDB. The newest version now includes support for TLS/SSL and SNI which is required to connect to Atlas M0 free tier clusters.Robo 3T(以前稱為Robomongo )是用于連接MongoDB的…

JavaWeb--JavaEE

一、JavaEE平臺安裝1、升級eclipseEE插件2、MyEclipse二、配置Eclipse工作空間1.字體設置 2.工作空間編碼 UTF-83.JDK版本指定 4.集成Tomcat Server運行環境5.配置server webapps目錄 端口號 啟動時間等三、創建第一個Web項目1.創建 Web Project2.設置 tomcat、創建web.xml3.目…

軟件需求規格說明書通用模版_通用需求挑戰和機遇

軟件需求規格說明書通用模版When developing applications there will be requirements that are needed on more than one application. Examples of such common requirements are non-functional, cookie consent and design patterns. How can we work with these types of…

python版PCA(主成分分析)

python版PCA&#xff08;主成分分析&#xff09; 在用統計分析方法研究這個多變量的課題時&#xff0c;變量個數太多就會增加課題的復雜性。人們自然希望變量個數較少而得到的信息較多。在很多情形&#xff0c;變量之間是有一定的相關關系的&#xff0c;當兩個變量之間有一定…

干貨|Spring Cloud Bus 消息總線介紹

2019獨角獸企業重金招聘Python工程師標準>>> 繼上一篇 干貨&#xff5c;Spring Cloud Stream 體系及原理介紹 之后&#xff0c;本期我們來了解下 Spring Cloud 體系中的另外一個組件 Spring Cloud Bus (建議先熟悉 Spring Cloud Stream&#xff0c;不然無法理解 Spr…

一類動詞二類動詞三類動詞_基于http動詞的完全無效授權技術

一類動詞二類動詞三類動詞Authorization is a basic feature of modern web applications. It’s a mechanism of specifying access rights or privileges to resources according to user roles. In case of CMS like applications, it needs to be equipped with advanced l…

主成份分析(PCA)詳解

主成分分析法&#xff08;Principal Component Analysis&#xff09;大多在數據維度比較高的時候&#xff0c;用來減少數據維度&#xff0c;因而加快模型訓練速度。另外也有些用途&#xff0c;比如圖片壓縮&#xff08;主要是用SVD&#xff0c;也可以用PCA來做&#xff09;、因…

thinkphp5記錄

ThinkPHP5 隱藏index.php問題 thinkphp模板輸出cookie,session中… 轉載于:https://www.cnblogs.com/niuben/p/10056049.html

portainer容器可視化管理部署簡要筆記

參考鏈接&#xff1a;https://www.portainer.io/installation/ 1、單個宿主機部署in Linux&#xff1a;$ docker volume create portainer_data$ docker run -d -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer 2、單…

證明您履歷表經驗的防彈五步法

How many times have you gotten the question “Tell me more about your work experience at …” or “Describe an experience when you had to overcome a technical challenge”? Is your answer solid and bullet-proof every single time you have to respond? If no…

2018-2019-1 20165231 實驗四 外設驅動程序設計

博客鏈接&#xff1a;https://www.cnblogs.com/heyanda/p/10054680.html 轉載于:https://www.cnblogs.com/Yhooyon/p/10056173.html

如何安裝pylab:python如何導入matplotlib模塊

pylab是python下挺不錯的一個畫圖模塊&#xff0c;使用也非常簡單&#xff0c;記得Mit的計算機科學及編程導論有節課也是用到了這個工具&#xff0c;但這個工具安裝不象用起來那么方便&#xff0c;小編就圖文全程直播下吧 工具/原料 python2.7.10win10 32位方法/步驟 1缺省狀態…

微信掃描二維碼和瀏覽器掃描二維碼 ios和Android 分別進入不用的提示頁面

實現微信掃描二維碼和瀏覽器掃描二維碼 ios和Android 分別進入不用的提示頁面 而進入商城下載該項目 詳情地址&#xff1a;gitee.com/DuJiaHui123… 1.創建完之后 替換文件里面的ios項目地址和Android地址 2.網頁上線 3.百度搜索 二維碼生成 把上線后的地址生成二維碼 4.可以把…

詳解getchar()函數與緩沖區

1、首先&#xff0c;我們看一下這段代碼&#xff1a; 它的簡單意思就是從鍵盤讀入一個字符&#xff0c;然后輸出到屏幕。理所當然&#xff0c;我們輸入1&#xff0c;輸出就是1&#xff0c;輸入2&#xff0c;輸出就是2。 那么我們如果輸出的是12呢&#xff1f; 它的輸出是1。 這…

windows下python安裝Numpy、Scipy、matplotlib模塊

python 2.7 針對2.7的軟件。numpy :http://sourceforge.net/projects/numpy/files/NumPy/1.8.1/ 下載下面的numpy-1.8.2-win32-superpack-python2.7 scipy: http://sourceforge.net/projects/scipy/files/matplotlib:matplotlib-1.1.0.win32-py2.7 以上都是exe文件&#xff0…