主頁(yè) > 知識(shí)庫(kù) > MongoDB常用操作匯總

MongoDB常用操作匯總

熱門標(biāo)簽:杭州人工電銷機(jī)器人價(jià)格 老虎洗衣店地圖標(biāo)注 電銷機(jī)器人是什么軟件 怎么投訴地圖標(biāo)注 蘋(píng)果汽車租賃店地圖標(biāo)注 廣州長(zhǎng)安公司怎樣申請(qǐng)400電話 濟(jì)南電銷機(jī)器人加盟公司 云南外呼系統(tǒng) 呼和浩特電銷外呼系統(tǒng)加盟

一、增刪改查

查看當(dāng)前數(shù)據(jù)庫(kù)中所有的集合,使用命令

show collections 或使用
show tables

創(chuàng)建集合有兩種方式,顯示創(chuàng)建和隱式創(chuàng)建

顯示創(chuàng)建可以使用命令 db.createCollection(“集合名稱")
隱式創(chuàng)建可以使用命令 db.集合名稱.insert({}),
指創(chuàng)建集合并同時(shí)向集合中插入數(shù)據(jù),
例如:db.customer.insert({name:”jack”})

向集合添加文檔

使用命令 db.集合名稱.insert({}),例如:

db.user1.insert({name:”jack”,age:20})

刪除集合中的文檔

使用命令 db.集合名稱.remove({刪除條件}),
不加刪除條件為刪除集合中的所有文檔:
例如,刪除c1集合中的所有文檔 db.c1.remove() 
刪除c1集合中name為user1的文檔 db.c1.remove({name:”user1”})

查詢集合中的文檔

db.集合名稱.find({條件})
或者使用 
db.集合名稱.findOne() 查詢第一個(gè)文檔

查詢集合中的文檔,返回某些特定的鍵值
除了查詢表達(dá)式以外,MongoDB還支持一些額外的參數(shù)選項(xiàng)。
如果僅僅只想返回某些特定的字段值:
返回除了age字段外的所有字段
db.user.find({},{age:0});

返回tags=tennis除了comments的所有列
db.posts.find({tags:'tennis'},{comments:0});

返回userid=16的name字段
db.user.find({userid:16},{name:1});
{"_id":16,"name":"user16"}

返回x=john的所有z字段
db.things.find({x:"john"},{z:1});

查詢集合中的文檔 ,使用條件表達(dá)式(, =, >, >=,!=)
//大于: field > value
db.collection.find({field:{$gt:value}});

//小于: field value
db.collection.find({field:{$lt:value}});

//大于等于: field >= value
db.collection.find({field:{$gte:value}});

//小于等于: field = value
db.collection.find({field:{$lte:value}});

//不等于:  field != value
db.collection.find({field:{$ne:value}});

查詢集合中的文檔 ,統(tǒng)計(jì)(count)、排序(sort)、分頁(yè)(skip、limit)

db.customer.count();
db.customer.find().count();
db.customer.find({age:{$lt:5}}).count();
db.customer.find().sort({age:1}); 降序-1
db.customer.find().skip(2).limit(3);
db.customer.find().sort({age:-1}).skip(2).limit(3);
db.customer.find().sort({age:-1}).skip(2).limit(3).count();
db.customer.find().sort({age:-1}).skip(2).limit(3).count(0);
db.customer.find().sort({age:-1}).skip(2).limit(3).count(1);

查詢集合中的文檔
$all主要用來(lái)查詢數(shù)組中的包含關(guān)系,
查詢條件中只要有一個(gè)不包含就不返回

$in,類似于關(guān)系型數(shù)據(jù)庫(kù)中的IN

$nin,與$in相反

$or,相當(dāng)于關(guān)系型數(shù)據(jù)庫(kù)中的OR,表示或者的關(guān)系,
例如查詢name為user2或者age為3的文檔,命令為:
db.customer.find({$or:[{name:”user2”},{age:3}]})

$nor,表示根據(jù)條件過(guò)濾掉某些數(shù)據(jù),例如查詢name不是user2,age不是3的文檔,命令為:
db.customer.find({$nor:[{name:”user2”},{age:3}]})

$exists,用于查詢集合中存在某個(gè)鍵的文檔或不存在某個(gè)鍵的文檔,例如查詢customer集合中存在name鍵的所有文檔,可以使用
db.customer.find({name:{$exists:1}})
$exists:1表示真,指存在
$exists:0表示假,指不存在

游標(biāo)

更新集合中的文檔
語(yǔ)法:db.collection.update(criteria,objNew,upsert,multi)
參數(shù)說(shuō)明:
criteria:用于設(shè)置查詢條件的對(duì)象
objNew:用于設(shè)置更新內(nèi)容的對(duì)象
upsert:如果記錄已經(jīng)存在,更新它,否則新增一個(gè)記錄,取值為0或1
multi:如果有多個(gè)符合條件的記錄,是否全部更新,取值為0或1

注意:默認(rèn)情況下,只會(huì)更新第一個(gè)符合條件的記錄
一般情況下后兩個(gè)參數(shù)分別為0,1 ,即:
db.collection.update(criteria,objNew,0,1)

將集合中name為user1的文檔改成name為jack:
db.c1.update({name:"user1"},{name:"jack"})

$set 用來(lái)指定一個(gè)鍵的值,如果這個(gè)鍵不存在,則創(chuàng)建它。例如:
給name為user1的文檔添加address,可以使用命令:
db.c1.update({name:”user1”},{$set:{address:”bj”}},0,1)
將name為user1的文檔修改address為tj,其它鍵值對(duì)不變,命令為:
db.c1.update({name:”user1”},{$set:{address:”tj”}},0,1)

使用 $inc 將集合中name為user1的age加1,其它鍵不變,
$inc表示使某個(gè)鍵值加減指定的數(shù)值
db.c1.update({name:"user1"},{$inc:{age:1}})

$unset 用來(lái)刪除某個(gè)鍵
例如刪除name為user1的文檔中的address鍵,可以使用命令:
db.c1.update({name:”user1”},{$unset:{address:1}},0,1)

二、索引:

索引就是用來(lái)加速查詢的。數(shù)據(jù)庫(kù)索引與書(shū)籍的索引類似:有了索引就不需要翻遍整本書(shū),數(shù)據(jù)庫(kù)則可以直接在索引中查找,使得查找速度能提高幾個(gè)數(shù)量級(jí)。在索引中找到條目以后,就可以直接跳轉(zhuǎn)到目標(biāo)文檔的位置。

普通索引:
創(chuàng)建:db.collection.ensureIndex({key:1})
查看關(guān)于索引的相關(guān)信息:db.collection.stats()
查看查詢使用索引的情況:db.collection.find({key:value}).explain()
刪除索引:db.collection.dropIndex({key:1})
刪除集合,也會(huì)將集合中的索引全部刪除

唯一索引:
創(chuàng)建:db.collection.ensureIndex({key:1},{unique:true})
查看關(guān)于索引的相關(guān)信息:db.collection.stats()
查看查詢使用索引的情況:db.collection.find({key:value}).explain()
刪除索引:db.collection.dropIndex({key:1})
刪除集合,也會(huì)將集合中的索引全部刪除

三、固定集合(capped collection)

固定集合指的是事先創(chuàng)建而且大小固定的集合 。

固定集合特性:固定集合很像環(huán)形隊(duì)列,如果空間不足,最早的文檔就會(huì)被刪除,為新的文檔騰出空間。一般來(lái)說(shuō),固定集合適用于任何想要自動(dòng)淘汰過(guò)期屬性的場(chǎng)景,沒(méi)有太多的操作限制。

創(chuàng)建固定集合:
db.createCollection(“collectionName”,{capped:true,size:100000,max:100}); 
size指定集合大小,單位為KB,max指定文檔的數(shù)量

當(dāng)指定文檔數(shù)量上限時(shí),必須同時(shí)指定大小。淘汰機(jī)制只有在容量還沒(méi)有滿時(shí)才會(huì)依據(jù)文檔數(shù)量來(lái)工作。要是容量滿了,淘汰機(jī)制會(huì)依據(jù)容量來(lái)工作。

四、備份(mongodump)和恢復(fù)(mongorestore)

MongoDB提供了備份和恢復(fù)的功能,分別是MongoDB下載目錄下的mongodump.exe和mongorestore.exe文件(即在mongodb bin目錄下的命令)

備份數(shù)據(jù)使用下面的命令:
mongodump -h dbhost -d dbname -o dbdirectory
-h:MongDB所在服務(wù)器地址,例如:127.0.0.1,當(dāng)然也可以指定端口號(hào):127.0.0.1:27017
-d:需要備份的數(shù)據(jù)庫(kù)實(shí)例,例如:test
-o:備份的數(shù)據(jù)存放位置,例如:c:\data\dump,當(dāng)然該目錄需要提
前建立,在備份完成后,系統(tǒng)自動(dòng)在dump目錄下建立一個(gè)test目錄,這個(gè)
目錄里面存放該數(shù)據(jù)庫(kù)實(shí)例的備份數(shù)據(jù)。

恢復(fù)數(shù)據(jù)使用下面的命令:
mongorestore -h dbhost -d dbname -directoryperdb dbdirectory
-h:MongoDB所在服務(wù)器地址
-d:需要恢復(fù)的數(shù)據(jù)庫(kù)實(shí)例,例如:test,當(dāng)然這個(gè)名稱也可以和備份時(shí)候的不一樣,比如test2
-directoryperdb:備份數(shù)據(jù)所在位置,例如:c:\data\dump\test

五、導(dǎo)入(mongoimport)和導(dǎo)出(mongoexport)

導(dǎo)出數(shù)據(jù)可以使用命令:
mongoexport -h dbhost -d dbname -c collectionName -o output
參數(shù)說(shuō)明:
-h  數(shù)據(jù)庫(kù)地址
-d 指明使用的庫(kù)
-c 指明要導(dǎo)出的集合
-o 指明要導(dǎo)出的文件名

例:
mongoexport -h localhost:27017 -d test -c c4 -o d:/beifeng/c4.txt

導(dǎo)入數(shù)據(jù)可以使用命令:
mongoimport -h dbhost -d dbname -c collectionname 文件的地址...
參數(shù)說(shuō)明:
-h  數(shù)據(jù)庫(kù)地址
-d 指明使用的庫(kù)
-c 指明要導(dǎo)入的集合
本地的文件地址...

例:
mongoimport -h localhost:27017 -d test -c cctv d:/beifeng/c4.txt

您可能感興趣的文章:
  • MongoDB使用小結(jié) 一些常用操作分享
  • MongoDB的mongo shell常用操作方法及操作腳本筆記
  • MongoDB與MySQL常用操作語(yǔ)句對(duì)照
  • php中的mongodb select常用操作代碼示例
  • MongoDB常用操作命令大全
  • MongoDB在PHP中的常用操作小結(jié)

標(biāo)簽:遼陽(yáng) 自貢 興安盟 雞西 玉林 泰安 廈門 無(wú)錫

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《MongoDB常用操作匯總》,本文關(guān)鍵詞  MongoDB,常用,操作,匯總,MongoDB,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《MongoDB常用操作匯總》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于MongoDB常用操作匯總的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章