2018-11-28MongoDB

MongoDB
1.認識
1.簡介
將數(shù)據(jù)存為一個文檔唧垦,數(shù)據(jù)結構鍵值對的形式
mongo文檔類似于json對象
{
name: "xinlan", <---filed:value
age: 26, <---

filed:value
hobby: ['basketball', 'meizi'] <---filed:value
}
2.數(shù)據(jù)模型
基本概率 文檔鳞青,集合窄绒,數(shù)據(jù)庫
關系型數(shù)據(jù)庫 mongo
數(shù)據(jù)庫 數(shù)據(jù)庫
表 集合
行 文檔
3.命令行 MondoDB 的進入和退出
1.進入命令: mongo
2.退出:exit
2.庫,集合操作
1.庫級操作
1.顯示所有的庫:show dbs #沒有數(shù)據(jù)的庫不顯示
2.顯示當前庫:db 默認進入test
3.切換/創(chuàng)建數(shù)據(jù)庫:use 數(shù)據(jù)庫名 # 不存在則創(chuàng)建
4.刪除庫:db.dropDatabase() # 刪除當前庫
***** 數(shù)據(jù)庫只有插入了內容之后才會真正創(chuàng)建
2.集合操作
1.顯示當前數(shù)據(jù)庫的所有的集合:show collections
2.創(chuàng)建集合:db.createCollection(name) #也可以在插入時直接使用新集合db.集

合名.insert({k:v,k:v})
3.刪除集合:db.集合名字.drop()
***** 創(chuàng)建集合后要插入一個文檔(記錄)坤检,集合才會真正的創(chuàng)建
*****命令大小寫敏感
3.文檔(數(shù)據(jù))的操作
**每一條數(shù)據(jù)叹谁,就是一個document饲梭,就是一條json
crud操作
1.添加文檔
1.添加單條 db.collection_name.insert(document)
# 添加文檔時,如果不指定_id參數(shù)焰檩,mongodb會為文檔分配一個
# 唯一的objectid
# 案例:student是集合名憔涉,不存在就自動創(chuàng)建集合并插入文檔
db.student.insert({
name: '張三',
age: 18,
sex: '男'
})
2.添加多條 db.collection_name.insertMany([doc1, doc2,..])
# 案例
db.student.insertMany([
{_id: 1, name:'李四', age: 16},
{_id: 2, name:'王五', age: 19}
])

    **** 數(shù)據(jù)是可以重復的,_id不能重復析苫,是唯一的
2.查詢
    語法:
        db.collection_name.find(query, projection)
        db.collection_name.find({query},{顯示的字段})
        query :可選监氢,使用查詢操作符指定查詢條件
        projection :可選,使用投影操作符指定返回的鍵藤违。查詢時返回文檔中所

有鍵值, 只需省略該參數(shù)即可(默認省略)纵揍。
1.查看集合中的所有數(shù)據(jù):db.collection_name.find()
2.格式化輸出:db.collection_name.find().pretty()
3.查看滿足條件的數(shù)據(jù):db.collection_name.find({_id: 1})
4.projection參數(shù)的用法(指定顿乒,需要顯示的字段)
如果不指定,則默認返回所有的鍵
格式如下泽谨,有兩種模式
# 1.指定返回的鍵,只顯示1的鍵,query為查詢條件
db.collection_name.find(query, {name:1, age:1})
# 2.指定不返回的鍵,不顯示0的鍵
db.collection_name.find(query, {name:0, age:0})
***** 要么都是1要么都是0璧榄,不能混用
*****_id鍵默認返回,需要主動的指定_id:0才會隱藏
如果不想指定查詢條件query吧雹,可以用{}代替骨杂,但是需要指定projection
命令格式db.集合名.find({查詢笨拙},{顯示的字段})
, 例如:db.student.find({}, {_id:0}) # 查詢所有數(shù)據(jù),不顯示_id
5.條件
1.大于 gt:db.collection_name.find({age: {gt:18}})
2.大于等于 gte:db.collection_name.find({age: {gte:18}})
3.小于 lt:db.collection_name.find({age: {lt:18}})
4.小于等于 lte:db.collection_name.find({age: {lte:18}})
5.不等于 ne:db.collection_name.find({age: {ne:18}})
6.邏輯運算
1.and : db.collection_name.find({and:[codition, codition]})
# 查詢年齡大于18的男學生
db.student.find({and:[{age: {gt:18}},{sex: '男'}]})
2.or:db.collection_name.find({or:[codition, codition]})
7.排序:sort({key:1/-1}) 表示通過字段key進行排序雄卷,-1代表倒序
# 按照年齡從大到小排序
db.student.find().sort({age:-1})
8.limit(int num)
# 獲取三條數(shù)據(jù)
db.student.find().limit(3)
9.skip(int num) 代表跳過num條數(shù)據(jù) 方法的默認參數(shù)為0 單獨使用
# 跳過第一條
db.student.find().skip(1)
# 跳過第一條搓蚪,取后面的3條
db.student.find().limit(3).skip(1)
3.刪除
1.刪除集合中的所有文檔:db.collection_name.remove({})
2.刪除滿足條件的所有文檔:db.collection_name.remove(conditon)
db.student.remove({_id: 1})
3.刪除滿足條件的第一條文檔:db.collection_name.remove(conditon,

{justOne:true})
4.修改
1.全文檔替換 ( 不用,危險)
db.collection_name.update(codition, doc1)
#將id為1的文檔,替換成{'name':'test'},如果有多個key,只update(1個

key,其他key會消失)
db.student.update({_id:1}, {'name':'test'})

    2.指定字段修改 db.collection_name.update(condition, {$set:{age:100}})
        1.修改找到的第一條:只會修改找到的第一條
            # 查找 年齡等于18的學生丁鹉,并修改第一個
            db.student.update({'age':18},{$set:{sex: '男'}})
        2.修改符合條件的所有文檔 加上一個參數(shù) {multi:true}
            db.student.update({'age':18},{$set:{sex: '男'}},{multi:true})
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末妒潭,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子揣钦,更是在濱河造成了極大的恐慌雳灾,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,427評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件冯凹,死亡現(xiàn)場離奇詭異谎亩,居然都是意外死亡,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,551評論 3 395
  • 文/潘曉璐 我一進店門匈庭,熙熙樓的掌柜王于貴愁眉苦臉地迎上來夫凸,“玉大人,你說我怎么就攤上這事嚎花〈缌。” “怎么了?”我有些...
    開封第一講書人閱讀 165,747評論 0 356
  • 文/不壞的土叔 我叫張陵紊选,是天一觀的道長啼止。 經常有香客問我,道長兵罢,這世上最難降的妖魔是什么献烦? 我笑而不...
    開封第一講書人閱讀 58,939評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮卖词,結果婚禮上巩那,老公的妹妹穿的比我還像新娘。我一直安慰自己此蜈,他們只是感情好即横,可當我...
    茶點故事閱讀 67,955評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著裆赵,像睡著了一般东囚。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上战授,一...
    開封第一講書人閱讀 51,737評論 1 305
  • 那天页藻,我揣著相機與錄音,去河邊找鬼植兰。 笑死份帐,一個胖子當著我的面吹牛,可吹牛的內容都是我干的楣导。 我是一名探鬼主播废境,決...
    沈念sama閱讀 40,448評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼筒繁!你這毒婦竟也來了彬坏?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,352評論 0 276
  • 序言:老撾萬榮一對情侶失蹤膝晾,失蹤者是張志新(化名)和其女友劉穎栓始,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體血当,經...
    沈念sama閱讀 45,834評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡幻赚,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,992評論 3 338
  • 正文 我和宋清朗相戀三年禀忆,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片落恼。...
    茶點故事閱讀 40,133評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡箩退,死狀恐怖,靈堂內的尸體忽然破棺而出佳谦,到底是詐尸還是另有隱情戴涝,我是刑警寧澤,帶...
    沈念sama閱讀 35,815評論 5 346
  • 正文 年R本政府宣布钻蔑,位于F島的核電站啥刻,受9級特大地震影響,放射性物質發(fā)生泄漏咪笑。R本人自食惡果不足惜可帽,卻給世界環(huán)境...
    茶點故事閱讀 41,477評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望窗怒。 院中可真熱鬧映跟,春花似錦、人聲如沸扬虚。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,022評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽辜昵。三九已至荸镊,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間路鹰,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,147評論 1 272
  • 我被黑心中介騙來泰國打工收厨, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留晋柱,地道東北人。 一個月前我還...
    沈念sama閱讀 48,398評論 3 373
  • 正文 我出身青樓诵叁,卻偏偏與公主長得像雁竞,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子拧额,可洞房花燭夜當晚...
    茶點故事閱讀 45,077評論 2 355

推薦閱讀更多精彩內容

  • 關于Mongodb的全面總結 MongoDB的內部構造《MongoDB The Definitive Guide》...
    中v中閱讀 31,938評論 2 89
  • 一碑诉、MongoDB簡介 1.概述 ? MongoDB是一個基于分布式文件存儲的數(shù)據(jù)庫,由C++語言編寫侥锦。旨在為WE...
    鄭元吉閱讀 978評論 0 2
  • 姓名:袁磊 公司:海南蔚藍時代實業(yè)有限公司 組別:第361期感謝二組 【日精進打卡第 154 天】 【知~學習】 ...
    三石_58fb閱讀 119評論 0 0
  • 01 一線城市雅閣酒樓的大廳恭垦,金碧輝煌快毛,大紅的花朵彩虹橋擺在大廳的中央格嗅,璀璨的燈光照得四壁熠熠生輝,鋼琴曲《夢中的...
    心閱閱閱讀 1,538評論 0 3
  • jh sdkjh askjkj sd c jks cxdfv cvbcx wqr dfsg thgfn fgjhhgn
    feifeizha閱讀 164評論 0 0