真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

MongoDb的基本操作快速入門-創(chuàng)新互聯(lián)

1.MongoDb簡介

創(chuàng)新互聯(lián)建站是一家專業(yè)提供五臺企業(yè)網(wǎng)站建設(shè),專注與網(wǎng)站制作、做網(wǎng)站、H5建站、小程序制作等業(yè)務(wù)。10年已為五臺眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)絡(luò)公司優(yōu)惠進(jìn)行中。

  mongodb是一個基于分布式存儲的開源數(shù)據(jù)庫系統(tǒng)又被稱為文檔數(shù)據(jù)庫,可以將數(shù)據(jù)存儲為一個文檔,數(shù)據(jù)結(jié)構(gòu)有鍵值對(key=>value)對組成,存儲的文檔類似于JSON對象(BSON->JSON的二進(jìn)制化)。

  特點:內(nèi)部執(zhí)行引擎為JS解釋器,把文檔存儲成BSON結(jié)構(gòu),在查詢時,轉(zhuǎn)換為JS對象,并可以通過熟悉的JS語法來操作。

  mongodb和傳統(tǒng)數(shù)據(jù)庫簡單比較,大的不同:

  傳統(tǒng)型數(shù)據(jù)庫:結(jié)構(gòu)化數(shù)據(jù),定好了表結(jié)構(gòu)后,每一行的內(nèi)容,必定是符合表結(jié)構(gòu)的,就是說列的個數(shù)以及類型都一樣。

  文檔數(shù)據(jù)庫:表下的每篇文檔都可以有自己獨特的結(jié)構(gòu)或者屬性和值。

2.MongoDb的安裝(centos7下詳細(xì)安裝步驟)

1)首先下載mongodb安裝包:

#wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-3.4.4.tgz

2)進(jìn)入到下載的目錄,將mongodb的安裝包解壓到指定的目錄中:

#tar -xvf mongodb-linux-x86_64-rhel70-3.4.4.tgz -C /usr/local

3)進(jìn)入解壓到的目錄,來啟動mongodb服務(wù)

#cd /usr/local

重命名MongoDb解壓的目錄

#mv mongodb-linux-x86_64-rhel70-3.4.4 mongodb #cd mongodb

4)啟動MongoDb

#mkdir -p /home/mongodata/ /var/log/mongolog/ #./bin/mongod --dbpath /home/mongodata/ --logpath /var/log/mongolog/mongo.log --fork --port 27017

啟動參數(shù)說明:

  --dbpath 數(shù)據(jù)存儲目錄

  --logpath 日志存儲目錄

  --port 運(yùn)行端口

  --fork 后臺運(yùn)行

5)通過客戶端連接到MongoDb

#./bin/mongo

注意:在一些老的版本中MongoDb啟動的時候會事先占用很多磁盤空間,啟動后可能需要占3-4G空間,如果虛擬機(jī)的空間過小將不能啟動,但是它有一個選項--smallfiles可以使啟動時占用空間縮小至400M左右。

3.mongodb具體操作示例

一 、mongodb的入門操作:

1)查詢所有庫列表

>show dbs;

2)切換數(shù)據(jù)庫(選擇使用的數(shù)據(jù)庫)

>use local;

3)創(chuàng)建數(shù)據(jù)庫

(注意:由于mongodb數(shù)據(jù)庫是隱式創(chuàng)建沒有直接的創(chuàng)建數(shù)據(jù)庫的方法,但可以直接使用use切換到一個事先不存在的庫下邊,當(dāng)創(chuàng)建表(collections)的時候會自動創(chuàng)建當(dāng)前數(shù)據(jù)庫)

>use shop

(假設(shè)shop庫不存在,也可以直接使用use)

>db.createCollection('user');

(可以在一個不存在的庫下邊直接創(chuàng)建collections(或者可以說創(chuàng)建表))

>show dbs;

然后你再去查看庫的時候會發(fā)現(xiàn)庫shop已經(jīng)默認(rèn)創(chuàng)建出來了。

4)創(chuàng)建一個表(collections)

>db.createCollection('user')

注意:表(也就是collections)也可以是隱式創(chuàng)建的,還拿上邊的例子說:假如shop庫里邊不存在一個goods的表(collections),我們?nèi)匀豢梢允褂孟逻叺姆绞讲迦霐?shù)據(jù)

>db.goods.insert({_id:1,name:'pipixia',price:52.10});

然后我們?nèi)ゲ榭磗hop這個庫內(nèi)的表(collections)時,發(fā)現(xiàn)goods已經(jīng)被自動創(chuàng)建出來了。

5)向collections(表)中插入單篇文檔(數(shù)據(jù))(插入的數(shù)據(jù)為json格式)

>db.user.insert({name:'張三',age:18})

6)查找collections(表)中的內(nèi)容

>db.user.find()

7)刪除collections(表)()

>db.user.drop()

8)刪除數(shù)據(jù)庫(databases)

>db.dropDatabase()

二、mongodb的基本操作(增、刪、改、查)CURD

1.增操作:insert

注意:mongodb存儲的是文檔,而所謂的文檔在這里其實是json格式的對象

1)增加單篇文檔

>db.collectionName.insert({sn:'001',name:'xiaoming'})

2)增加單篇文檔,并指定id

>db.collectionName.insert({_id:2,sn:'002',name:'xiaohong'})

3)增加多篇文檔(因為json是一個對象,js里邊有數(shù)組的概念,只需把多個對象放到數(shù)組里即可)

>db.collectionName.insert([{sn:'003','name':'zhangfei'},{sn:'004','name':'guanyu'},{sn:'004','name':'liubei'}])

2.刪操作:remove

語法:db.collectionName.remove(查詢表達(dá)式,選項)

選項是指{justOne:true/false},是否刪一行,默認(rèn)是false

注意:

  1.查詢表達(dá)式依然是一個json對象

  2.查詢表達(dá)式匹配到的行將被刪除

  3.如果沒有查詢表達(dá)式,則collections中的所有文檔將全部被刪除

1)刪除指定json文檔(json格式的對象)

例如:刪除collectionName表中sn屬性值為002的json對象文檔

>db.collectionName.remove({sn:'002'})

2)假如查詢表達(dá)式為空,如下

>db.collectionName.remove()

會刪除庫中的所有文檔,使用要小心

3)假如我們想刪除符合查詢表達(dá)式中的一行數(shù)據(jù)可以使用上邊提到的《選項》功能,如

>db.collectionName.remove({"name":"zhangsan"},true)

則只會刪除所有name符合zhangsan的其中一條文檔數(shù)據(jù)

3.改操作:update

語法:db.collectionName.update(查詢表達(dá)式,新值,選項)

1)查詢表達(dá)式是指需要修改誰,新值是指改成什么樣,選項是指可選參數(shù)

例如:

>db.collectionName.update({name:'zhangfei'},{name:'zhangfeifei'})

查看一下更改結(jié)果

>db.collectionName.find()

將會發(fā)現(xiàn)修改后的文檔中就剩下id和name列了,而sn列不見了

原因:新文檔直接替換了舊的文檔,而不是修改

2)但是我們可以使用$set來指定修改某一列

>db.collectionName.update({name:'guanyu'},{$set:{name:'guanyunchang'}})

修改時的賦值表達(dá)式

$set 修改某個列的值

$unset 刪除某個列

$rename 重命名某個列

$inc 增大某個列的值

3)來一個復(fù)雜的更新操作

先插入一條數(shù)據(jù)

>db.collectionName.insert({name:'caocao',age:40,sex:'m',addr:'wei')

修改這條數(shù)據(jù)

>db.collectionName.update({name:'caocao'},{$set:{name:'caoaman'},$unset:{addr:1},$rename:{sex:'gender'},$inc:{age:10}})

4)第三個可選參數(shù)option的作用:

{upsert:true/false,multi:true/false}

  upsert是指沒有匹配的行,則直接插入該行。(和mysql中的replace類似)

例如:

>db.collectionName.update({_id:100},{name:'liubei'},{upsert:true})

如果沒有_id為100的文檔,則直接插入該文檔。

注意:如果既沒有_id為100的文檔,又沒有upsert可選參數(shù),則該跟新操作不會對表中的文檔造成影響。

  multi是指要不要改多行

即如果查詢表達(dá)式匹配到多行默認(rèn)情況下只會更改一行,如果要想修改多行,則需要使用此選項。

例如:

>db.collectionName.update({sex:'m'},$set:{sex:'w'},{multi:true})

會把collectionName中所有sex=m的文檔都修改為sex=w

4.查操作:find,findOne

語法:db.collection.find(查詢表達(dá)式,查詢的列)

例如:

1)查詢所有文檔

>db.collectionName.find()

2)查詢所有文檔的sex屬性(列)

>db.collectionName.find({},{sex:1})

3)查詢所有文檔的sex屬性,不查詢_id屬性

>db.collectionName.find({},{sex:1,_id:0})

注意:無論增刪改查都離不開一個查詢表達(dá)式,以上的示例都是比較簡單的入門操作

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。


本文標(biāo)題:MongoDb的基本操作快速入門-創(chuàng)新互聯(lián)
URL標(biāo)題:http://weahome.cn/article/ccggpi.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部