mongo簡單使用

mongoDB簡介

簡介

mongoDB文檔數據庫妻坝,存儲的是文檔(Bson->json的二進制化)伸眶。

特點:其內部使用js解釋引擎來實現數據的分析,在插入的時候刽宪,將數據轉換成二進制的json來存儲厘贼,在查詢的時候,將數據轉換成json對象圣拄,方便處理嘴秸。需要注意:mongoDB主要是和node.js配合使用。

問題:與傳統關系型數據有什么區(qū)別庇谆?

答:沒有表結構的概念赁遗,傳統的關系型數據庫的數據必須按照表的結構來存儲(行、列形成的二維表)

在mongoDB中沒有表的概念族铆,將表換了一種稱呼岩四,叫做collection,對應表中記錄也換了一種稱呼哥攘,叫做document剖煌。它有數據庫的概念,就是多個collections組成的集合逝淹。

選項

關系型數據庫

mongoDB

redis

memcache

數據庫

yes

yes

no

no

數據表

yes(二維)

collection

no

no

記錄

yes(一行)

document(json對象)

key-values(string?link?hash?set?orderset)

key-values

安裝

1.下載對應的穩(wěn)定版源代碼耕姊,并放置到(/usr/local/src目錄下)

官網:www.mongodb.org

中文手冊:http://www.runoob.com/mongodb/mongodb-tutorial.html

2.解壓文件

#?tar?-zxvf?XXX.tar.gz

3.不需要編譯,因為官方已經編譯好栅葡,可以直接使用

4.啟動mongoDB如果mongoDB以后臺運行茉兰,必須加上--logpath后面必須要指定日志文件的名稱

#?./bin/mongod?--dbpath?/path/to/database?--logpath?/path/to/log.txt--fork?--port?27017

注意:

mongodb非常的占磁盤空間,剛啟動后要占3-4G左右,如果你用虛擬機練習欣簇,可能空間不夠,導致無法啟動规脸∨髟迹可以用--smallfiles選項來啟動,將會占用較小空間?莫鸭,400M左右闹丐。

參數解釋:

--dbpath數據存儲目錄

--logpath日志存儲目錄

--port運行端口(默認27017)

--fork后臺進程運行

mongoDB使用

入門命令

1.?show?dbs查看當前的數據庫

2.?use?databaseName選庫

3.?show?tables查看當前庫下的數據表

注意:即使數據不存在,也可以直接切換被因,會自己創(chuàng)建卿拴。但是如果在數據庫中不創(chuàng)建collection是不會顯示的。

創(chuàng)建數據庫

mongoDB的庫是隱式創(chuàng)建梨与,當use一個不存在的庫的時候堕花,在該庫下創(chuàng)建tables(collection)即可創(chuàng)建庫

創(chuàng)建表

1.顯式創(chuàng)建

db.createCollection(‘collectionName’)創(chuàng)建表

2.隱式創(chuàng)建

db.collectionName.insert(document)在插入數據的時候,隱式的創(chuàng)建

3.可以使用

show?tables查看當前數據庫下的表(collection)

show?collections也可以查看當前數據庫下的表(collection)

刪除表

db.collectionName.drop()刪除表

刪除數據庫

db.dropDatabase()刪除數據庫

基本增刪改查命令

注意:mongoDB又叫無模式(沒有嚴格意義上的數據結構)的文檔型(bson)的nosql(不使用SQL語句查詢)數據庫

注意:mongoDB會自動幫我們維持一個主鍵ID(_id)不需要也不建議手工的修改

增加數據insert

#?db.collectionName.isnert(document)注意這里的document是一個json對象

例如:

單條記錄:

#?db.collectionName.insert({_id:5,?age:18,?name:’asion’});

多條記錄

#?db.collectionName.insert(

[

{date:'2014-12-12',study:'mongodb'},

{_id:9,gender:'male',name:'caoyang'}

]

)

刪除數據remove

#?db.collection.remove(查詢表達式,選項);

選項是指{justOne:true/false},是否只刪一行,默認為false

注意

1:查詢表達式依然是個json對象

2:查詢表達式匹配的行粥鞋,將被刪掉

3:如果不寫查詢表達式航徙,tables中的所有文檔將被刪掉

例1:?db.students.remove({sn:’001’});

刪除students表中sn屬性值為’001’的數據

例2:?db.students.remove({gender:’m’},{justOne:true});

刪除students表中gender屬性為m的文檔,只刪除1行

修改數據update

#?db.collection.update(查詢表達式,新值)

注意

修改什么??--->查詢表達式指定

改成什么樣??-->新值?或?賦值表達式

例如:

#db.news.update({name:'asion'},{name:'caoyang'});

是指選中news表中陷虎,name值為qq的數據到踏,并把其文檔值改為{name:’caoyang’}

結果:文檔中的其他列不見了,改后只有_id和name列數據

注意-->新值直接替換了舊值尚猿,而不是修改窝稿,那我們設置的值做了一個全部的替換

所以:如果是想修改數據的某列,可以用$set關鍵字

#?db.collectionName.update({name:'asion'},?{$set:{name:’caoyang’}})

查詢數據find,?findOne

#?db.collection.find(查詢表達式,查詢的列);

#?db.collections.find(表達式,{列1:1,列2:1});

例1:db.students.find()

查詢students所有數據

例2:?db.students.find({},{gendre:1})

查詢所有數據的gender屬性(_id屬性默認總是查出來)

例3:?db.students.find({},{gender:1,?_id:0})

查詢所有文檔的gender屬性凿掂,且不查詢_id屬性

例3:?db.students.find({gender:’male’},?{name:1,?_id:0});

查詢所有gender屬性值為male的數據中的name屬性

中級技巧-查詢表達式

查詢表達式

在查詢時候的時候伴榔,使用的條件表達式

1.簡單的查詢表達式

{filed:value}

作用:是指查詢field列的值為value的數據

2:?$ne代表!=

{field:{$ne:value}}

作用:查出filed列的值不等于value的數據

注意:如果在開發(fā)中忘記了如何使用?

答:?善用help和百度

#?db.help()

#?db.user.help()

#?db.user1.help()

注意:HBase

php操作mongoDB

注意:如果要使用js來操作mongoDB庄萎,需要使用node.js這個服務器(js解釋器)作為名單客戶端來操作mongoDB

php-mongoDB擴展

1.下載源碼

2.上傳到/usr/local/src

3.執(zhí)行phpize命令

4.執(zhí)行make?&&?make?install

5.生成目錄

6.修改php.ini

9.重啟php-fpm

10.創(chuàng)建測試文件

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末踪少,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子糠涛,更是在濱河造成了極大的恐慌援奢,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,651評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件忍捡,死亡現場離奇詭異集漾,居然都是意外死亡,警方通過查閱死者的電腦和手機砸脊,發(fā)現死者居然都...
    沈念sama閱讀 92,468評論 3 392
  • 文/潘曉璐 我一進店門具篇,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人凌埂,你說我怎么就攤上這事驱显。” “怎么了荆烈?”我有些...
    開封第一講書人閱讀 162,931評論 0 353
  • 文/不壞的土叔 我叫張陵阿纤,是天一觀的道長谬晕。 經常有香客問我振峻,道長,這世上最難降的妖魔是什么客们? 我笑而不...
    開封第一講書人閱讀 58,218評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上叙淌,老公的妹妹穿的比我還像新娘。我一直安慰自己愁铺,他們只是感情好鹰霍,可當我...
    茶點故事閱讀 67,234評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著茵乱,像睡著了一般茂洒。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上瓶竭,一...
    開封第一講書人閱讀 51,198評論 1 299
  • 那天督勺,我揣著相機與錄音,去河邊找鬼斤贰。 笑死智哀,一個胖子當著我的面吹牛,可吹牛的內容都是我干的荧恍。 我是一名探鬼主播瓷叫,決...
    沈念sama閱讀 40,084評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼送巡!你這毒婦竟也來了摹菠?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 38,926評論 0 274
  • 序言:老撾萬榮一對情侶失蹤骗爆,失蹤者是張志新(化名)和其女友劉穎次氨,沒想到半個月后,有當地人在樹林里發(fā)現了一具尸體摘投,經...
    沈念sama閱讀 45,341評論 1 311
  • 正文 獨居荒郊野嶺守林人離奇死亡糟需,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,563評論 2 333
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現自己被綠了谷朝。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片洲押。...
    茶點故事閱讀 39,731評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖圆凰,靈堂內的尸體忽然破棺而出杈帐,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 35,430評論 5 343
  • 正文 年R本政府宣布挑童,位于F島的核電站累铅,受9級特大地震影響,放射性物質發(fā)生泄漏站叼。R本人自食惡果不足惜娃兽,卻給世界環(huán)境...
    茶點故事閱讀 41,036評論 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望尽楔。 院中可真熱鬧投储,春花似錦、人聲如沸阔馋。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,676評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽呕寝。三九已至勋眯,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間下梢,已是汗流浹背客蹋。 一陣腳步聲響...
    開封第一講書人閱讀 32,829評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留孽江,地道東北人讶坯。 一個月前我還...
    沈念sama閱讀 47,743評論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像竟坛,于是被迫代替她去往敵國和親闽巩。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,629評論 2 354

推薦閱讀更多精彩內容

  • 目錄 查詢操作 集合查詢方法 find() 查詢內嵌文檔 查詢操作符(內含 數組查詢) "$gt" 担汤、"$gte"...
    彩虹之夢閱讀 1,020評論 0 1
  • NoSql數據庫優(yōu)缺點 在優(yōu)勢方面主要體現在下面幾點: 簡單的擴展 快速的讀寫 低廉的成本 靈活的數據模型 在不足...
    dreamer_lk閱讀 2,718評論 0 6
  • 第一章 前言 1.1 知識體系分析 前端工程師:Web前端涎跨,也就是在Web應用中用戶可以看得見碰得著的東西。包括W...
    whitsats閱讀 868評論 0 3
  • 只要是數據庫那么就絕對離不開最為核心的功能: CRUD, 所以在MongoDB里面對于數據的操作也是支持的, 但是...
    簡人CC閱讀 237評論 0 0
  • 算是想明白了一件事 想要的總是得不到 不是我不肯努力 而是我自己不配擁有 你別問我自己為什么這么狼狽 我不想相信任...
    草民丶閱讀 141評論 0 0