mongodb基礎(chǔ)知識(shí)筆記

MongoDB介紹

MongoDB是一個(gè)基于分布式文件存儲(chǔ)的開(kāi)源文檔數(shù)據(jù)庫(kù)侣背。由C++語(yǔ)言編寫(xiě)。旨在為WEB應(yīng)用提供高性能、高可用性和高伸縮數(shù)據(jù)存儲(chǔ)解決方案染厅。

MongoDB優(yōu)點(diǎn)

MongoDB優(yōu)點(diǎn)

MongoDB使用場(chǎng)景

  • 數(shù)據(jù)緩存

    由于性能很高,MongoDB適合作為信息基礎(chǔ)設(shè)施的緩存層津函。在系統(tǒng)重啟之后肖粮,由MongoDB搭建的持久化緩存層可以避免下層的數(shù)據(jù)源過(guò)載。

  • 對(duì)象和json存儲(chǔ)

    MongoDB的BSON(二進(jìn)制JSON)數(shù)據(jù)格式非常適合文檔化格式的存儲(chǔ)及查詢(xún),而且JSON格式存儲(chǔ)最接近真實(shí)對(duì)象模型尔苦,對(duì)開(kāi)發(fā)者友好涩馆,方便快速開(kāi)發(fā)迭代,靈活的模式讓你不在為了不斷變化的需求而去頻繁修改數(shù)據(jù)庫(kù)字段和結(jié)構(gòu)。

  • 高伸縮性場(chǎng)景

    MongoDB通過(guò)分片集群允坚,使MongoDB服務(wù)能力易于水平擴(kuò)展魂那。

  • 弱事務(wù)類(lèi)型業(yè)務(wù)

    MongoDB不支持多文檔事務(wù),所以像銀行系統(tǒng)這種需要大量原子性復(fù)雜事務(wù)的程序不適合使用MongoDB稠项。(注:MongoDB 4.0將支持跨文檔的事務(wù))涯雅。

MongoDB版本特性介紹

MongoDB概念

通過(guò)和關(guān)系型數(shù)據(jù)庫(kù)mysql的對(duì)照,讓我們更容易的理解MongoDB的一些概念

關(guān)系型數(shù)據(jù)庫(kù)(sql)概念 MongoDB概念 說(shuō)明
database database 數(shù)據(jù)庫(kù)
table collection 數(shù)據(jù)庫(kù)表/集合
row document 數(shù)據(jù)行/文檔
column filed 數(shù)據(jù)字段/域
index index 索引
MongoDB數(shù)據(jù)關(guān)系圖

數(shù)據(jù)庫(kù)

  • 一個(gè)MongoDB中可以建立多個(gè)數(shù)據(jù)庫(kù)展运。

  • MongoDB的默認(rèn)數(shù)據(jù)庫(kù)為"db"活逆,該數(shù)據(jù)庫(kù)存儲(chǔ)在data目錄中

集合

  • 集合名不能以"system."開(kāi)頭

  • 關(guān)系型數(shù)據(jù)庫(kù)中的表(table)中的每一條數(shù)據(jù)(row)的格式是事先約定好的的精刷,而MongoDB中的集合(collection)中文檔(document)的數(shù)據(jù)格式是不固定的,也就是說(shuō)我們可以將如下數(shù)據(jù)插入統(tǒng)一文檔中蔗候。

{"site":"www.wuhuan.me"}
{"site":"www.baidu.com","name":"百度"}

文檔

  • 文檔中的值不僅可以是在雙引號(hào)里面的字符串怒允,還可以是其他幾種數(shù)據(jù)類(lèi)型(甚至可以是整個(gè)嵌入的文檔)

例如:在關(guān)系型數(shù)據(jù)庫(kù)中有一張students表和course表,表的結(jié)構(gòu)和數(shù)據(jù)如下:**

students表

id name sex age
1 李雷 0 12
2 韓梅梅 1 12

course表

id course_id course_name score user_id
1 1 語(yǔ)文 99 1
2 2 數(shù)學(xué) 100 1
3 1 語(yǔ)文 96 2
4 2 數(shù)學(xué) 98 3

以上數(shù)據(jù)和結(jié)構(gòu)在MongoDB中可以使用內(nèi)嵌文檔來(lái)表示(一對(duì)多)的關(guān)系:

{
  "_id":ObjectId("5349b4ddd2781d08c09890f3"),
  "name":"李雷",
  "sex":"0",
  "age":"12",
  "course":[{
    "course_id":1,
    "course_name":"語(yǔ)文",
    "score":99,
  },{
    "course_id":2,
    "course_name":"數(shù)學(xué)",
    "score":100,
  }]
}
{
  "_id":ObjectId("5349b4ddd2781d08c09890f4"),
  "name":"韓梅梅",
  "sex":"1",
  "age":"12",
  "course":[{
    "course_id":1,
    "course_name":"語(yǔ)文",
    "score":96,
  },{
    "course_id":2,
    "course_name":"數(shù)學(xué)",
    "score":98,
  }]
}
  • 文檔中的鍵/值對(duì)是有序的锈遥,文檔中的鍵是不能重復(fù)误算,且區(qū)分大小寫(xiě)。

數(shù)據(jù)類(lèi)型

數(shù)據(jù)類(lèi)型 描述
String 字符串迷殿。存儲(chǔ)數(shù)據(jù)常用的數(shù)據(jù)類(lèi)型儿礼。在 MongoDB 中,UTF-8 編碼的字符串才是合法的庆寺。
Integer 整型數(shù)值蚊夫。用于存儲(chǔ)數(shù)值。根據(jù)你所采用的服務(wù)器懦尝,可分為 32 位或 64 位呀洲。
Boolean 布爾值苍糠。用于存儲(chǔ)布爾值(真/假)。
Double 雙精度浮點(diǎn)值。用于存儲(chǔ)浮點(diǎn)值相寇。
Min/Max keys 將一個(gè)值與 BSON(二進(jìn)制的 JSON)元素的最低值和最高值相對(duì)比获三。
Array 用于將數(shù)組或列表或多個(gè)值存儲(chǔ)為一個(gè)鍵弄唧。
Timestamp 時(shí)間戳袜瞬。記錄文檔修改或添加的具體時(shí)間。
Object 用于內(nèi)嵌文檔效床。
Null 用于創(chuàng)建空值睹酌。
Symbol 符號(hào)。該數(shù)據(jù)類(lèi)型基本上等同于字符串類(lèi)型剩檀,但不同的是憋沿,它一般用于采用特殊符號(hào)類(lèi)型的語(yǔ)言。
Date 日期時(shí)間沪猴。用 UNIX 時(shí)間格式來(lái)存儲(chǔ)當(dāng)前日期或時(shí)間辐啄。你可以指定自己的日期時(shí)間:創(chuàng)建 Date 對(duì)象,傳入年月日信息运嗜。
Object ID 對(duì)象 ID壶辜。用于創(chuàng)建文檔的 ID。
Binary Data 二進(jìn)制數(shù)據(jù)洗出。用于存儲(chǔ)二進(jìn)制數(shù)據(jù)士复。
Code 代碼類(lèi)型图谷。用于在文檔中存儲(chǔ) JavaScript 代碼翩活。
Regular expression 正則表達(dá)式類(lèi)型阱洪。用于存儲(chǔ)正則表達(dá)式。

ObjectId

MongoDB文檔必須有一個(gè)默認(rèn)的_id鍵,且在一個(gè)集合里_id始終唯一菠镇。_id鍵的值可以是任何類(lèi)型的冗荸,默認(rèn)是個(gè)ObjectId對(duì)象,它由MongoDB數(shù)據(jù)庫(kù)自動(dòng)創(chuàng)建利耍。MongoDB使用objectId而不是使用常規(guī)做法(自增主鍵)主要原因是,在多個(gè)服務(wù)器(分布式)同步自動(dòng)增加主鍵費(fèi)力費(fèi)時(shí)蚌本。

ObjectId由12個(gè)字節(jié)的BSON組成

  • 前4個(gè)字節(jié)表示時(shí)間戳

  • 接下來(lái)的3個(gè)字節(jié)是機(jī)器標(biāo)識(shí)碼

  • 緊接的兩個(gè)字節(jié)由進(jìn)程id組成(PID)

  • 最后三個(gè)字節(jié)是隨機(jī)數(shù)。

創(chuàng)建新的ObjectId

我們可以在命令行通過(guò)如下語(yǔ)句來(lái)創(chuàng)建一個(gè)新的ObjectId

> newId=ObjectId()

上面語(yǔ)句將返回一個(gè)唯一的_id

ObjectId("1249b4ddd2712d08c09890f3")

也可以使用生成的ObjectId替換MongoDB自動(dòng)生成的ObjectId隘梨。

MongoDB基本使用

安裝數(shù)據(jù)庫(kù)

在windows安裝MongoDB比較簡(jiǎn)單在官網(wǎng)MongoDB下載地址下載對(duì)應(yīng)的windows安裝包一鍵安裝就行了程癌。

安裝完之后記得將MongoDB安裝目錄下的bin目錄加入到系統(tǒng)的環(huán)境變量中。

啟動(dòng)數(shù)據(jù)庫(kù)

啟動(dòng)數(shù)據(jù)庫(kù)使用mongod命令

  • 方式一:普通方式啟動(dòng)
> mongod --dbpath  E:\MongoDB\data\db  #不使用默認(rèn)端口的話可以加上--port=[端口號(hào)]參數(shù)

E:\data\db為數(shù)據(jù)文件路徑

  • 方式二:通過(guò)配置文件啟動(dòng)
> mongod --config E:\MongoDB\mongo.conf

E:\MongoDB\mongo.conf為配置文件路徑轴猎,配置文件內(nèi)容為:

# 服務(wù)端口
port=27017
# 數(shù)據(jù)文件路徑
dbpath=E:\mongondb\data\db 
# 日志文件路徑
logpath=E:\mongondb\log\mongon.log
# 打開(kāi)日志輸出操作
logappend=true
# 不使用任何的驗(yàn)證方式登錄
noauth=true

連接數(shù)據(jù)庫(kù)

連接數(shù)據(jù)庫(kù)使用mongo [,鏈接字符串]連接url的標(biāo)準(zhǔn)語(yǔ)法如下

mongodb://[username:password@]host[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]]
  • 登錄本地默認(rèn)數(shù)據(jù)庫(kù)服務(wù)器嵌莉,無(wú)用戶(hù)名密碼,端口默認(rèn)27017,鏈接默認(rèn)的db數(shù)據(jù)庫(kù)
> mongo mongodb://localhost/db 

或者

> mongo 
  • 使用用戶(hù)名admin捻脖、密碼123456锐峭,登錄本地端口為27017的test數(shù)據(jù)庫(kù)。
> mongo mongodb://admin:123456@localhost:27017/test

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

創(chuàng)建數(shù)據(jù)庫(kù)使用use [數(shù)據(jù)庫(kù)名],例如創(chuàng)建一個(gè)test123的數(shù)據(jù)庫(kù)

> use test123
switched to db test123
> db
test123

顯示當(dāng)前所有的數(shù)據(jù)庫(kù)可以使用命令show dbs

> show dbs
db     0.001GB
local  0.000GB

怎么沒(méi)有我們剛才創(chuàng)建的test123呢?那是因?yàn)閿?shù)據(jù)庫(kù)中還沒(méi)有內(nèi)容可婶,我們向test123中插入db.[集合名稱(chēng)].insert(json格式的數(shù)據(jù)對(duì)象)一條數(shù)據(jù)沿癞,再看看!

> show dbs
db     0.001GB
local  0.000GB
> use test123
switched to db test123
> db
test123
> db.coll.insert({"title":"not data!"})
WriteResult({ "nInserted" : 1 })
> show dbs
db       0.001GB
local    0.000GB
test123  0.000GB

查看db.[集合名稱(chēng)].find()剛才添加的數(shù)據(jù)

> use test123
switched to db test123
> db.coll.find()
{ "_id" : ObjectId("5a66e39914fea5f8ff237420"), "title" : "not data!" }

使用use命令如果數(shù)據(jù)庫(kù)不存在則創(chuàng)建矛渴,存在則切換到指定的數(shù)據(jù)庫(kù)椎扬。

刪除數(shù)據(jù)庫(kù)

刪除數(shù)據(jù)庫(kù)使用db.dropDatabase()函數(shù)進(jìn)行

首先查看所有的數(shù)據(jù)庫(kù)

> show dbs
db       0.001GB
local    0.000GB
test123  0.000GB

接著切換到要?jiǎng)h除的數(shù)據(jù)庫(kù)test123

> use test123
switched to db test123

刪除當(dāng)前數(shù)據(jù)庫(kù)

> db.dropDatabase()
{ "dropped" : "test123", "ok" : 1 }  #刪除成功

數(shù)據(jù)增加

數(shù)據(jù)添加方法:insert(),insertOne(),insertMany()

添加一條數(shù)據(jù)

/** insert()方法 **/

> db.person.insert({name:"張三",age:18,sex:"男"});
WriteResult({ "nInserted" : 1 })
> db.person.find()                             });
{ "_id" : ObjectId("5a7941c65f6d5986321c8416"), "name" : "張三", "age" : 18, "sex" : "男" }

/** insertOne()方法插入一條數(shù)據(jù) **/

> db.person.insertOne({name:"張三",age:18,sex:"男"});
{                                               dered:true})
        "acknowledged" : true,
        "insertedId" : ObjectId("5a7965855f6d5986321c8422")
}
> db.person.find()
{ "_id" : ObjectId("5a7965855f6d5986321c8422"), "name" : "張三", "age" : 18, "sex" : "男" }
>

添加多條數(shù)據(jù)

*** 方式一 把要插入的數(shù)據(jù)放在一個(gè)數(shù)組中進(jìn)行批量插入***


/** insert()方法 **/

> db.person.insert( [ {name:"張三",age:18,sex:"男"}, {name:"李四",age:21,sex:"女"}, {name:"王五",age:20,sex:"男"}, {name:"趙六",age:19,sex:"女"} ],{ordered:true})
BulkWriteResult({
        "writeErrors" : [ ],
        "writeConcernErrors" : [ ],
        "nInserted" : 4,
        "nUpserted" : 0,
        "nMatched" : 0,
        "nModified" : 0,
        "nRemoved" : 0,
        "upserted" : [ ]
})

/** insertMany()方法 **/

> db.person.insertMany( [ {name:"張三",age:18,sex:"男"}, {name:"李四",age:21,sex:"女"}, {name:"王五",age:20,sex:"男"}, {name:"趙六",age:19,sex:"女"} ],{ordered:true})
{
        "acknowledged" : true,
        "insertedIds" : [
                ObjectId("5a7969ec5f6d5986321c8430"),
                ObjectId("5a7969ec5f6d5986321c8431"),
                ObjectId("5a7969ec5f6d5986321c8432"),
                ObjectId("5a7969ec5f6d5986321c8433")
        ]
}

多加了一個(gè)參數(shù){ordered:true}表示有序插入, 有序插入碰到異常時(shí)它會(huì)直接返回具温,不會(huì)繼續(xù)插入數(shù)組中其余的文檔記錄盗舰。不加此參數(shù)或者{ordered:false}為無(wú)序插入, 無(wú)序的插入會(huì)在遇到異常時(shí)繼續(xù)執(zhí)行

*** 方式二 使用bluk對(duì)象進(jìn)行數(shù)據(jù)的批量添加 ***

  • 第一步:初始化一個(gè)批量操作對(duì)象
var bulk = db.person.initializeUnorderedBulkOp();
  • 第二步:把要添加的數(shù)據(jù)添加到bulk對(duì)象中
bulk.insert({name:"趙六",age:19,sex:"女"});
bulk.insert({name:"趙六",age:19,sex:"女"});
bulk.insert({name:"趙六",age:19,sex:"女"});
  • 第三步:真正添加到數(shù)據(jù)庫(kù)的方法
bulk.execute();

插入文檔你也可以使用 db.集合名稱(chēng).save(document) 命令桂躏。如果不指定 _id 字段 save() 方法類(lèi)似于 insert() 方法钻趋。如果指定 _id 字段,則會(huì)更新該 _id 的數(shù)據(jù)剂习。

insert()方法既可以插入一個(gè)數(shù)組也可插入一個(gè)對(duì)象蛮位,insertOne()方法只能插如一個(gè)對(duì)象,insertMany()只能插入一個(gè)數(shù)組鳞绕,insert()返回插入成功的記錄條數(shù)失仁,而insertOne()和insertMany()方法返回成功標(biāo)志和插入成功的_objectId

數(shù)據(jù)查詢(xún)

查詢(xún)命令:find(),findOne()

findOne()方法查詢(xún)的結(jié)果已經(jīng)格式化輸出了们何,find()方法要想格式化輸出數(shù)據(jù)調(diào)用pertty()修飾查詢(xún)方法也能達(dá)到相同的效果萄焦。

舉例:db.person.find({age:18})
查詢(xún)年齡等于18的人的所有信息

舉例:db.person.find({age:{$gt:18}},{name:1,sex:1})
查詢(xún)db數(shù)據(jù)庫(kù)中person集合中年齡大于18的人的姓名和性別

說(shuō)明:如果年齡小于18可以使用$lt操作符,第二個(gè)參數(shù){name:1,sex:1}里面表示顯示的字段,如果不想顯示某個(gè)字段那么就不用寫(xiě)如果第二個(gè)參數(shù)是{name:1}拂封,那么表示只顯示姓名字段茬射,如果整個(gè)第二個(gè)參數(shù)都不寫(xiě),那么默認(rèn)顯示所有的字段

修飾查詢(xún)的方法:limit()【限制條數(shù)】,sort()【排序】,skip()【跳過(guò)】,pretty()【美化格式】

舉例:db.person.find({age:{$gt:18}},{name:1,sex:1,age:1}).sort({age:-1}).limit(3).skip(1).pretty()
查詢(xún)db數(shù)據(jù)庫(kù)中person集合中年齡大于18的人的姓名和性別,然后按照年齡降序排列冒签,然后取排列后的數(shù)據(jù)的前三條在抛,然后再跳過(guò)一條數(shù)據(jù)后的集合

說(shuō)明:sort({age:-1})中的【-1】表示降序排列,如果升序排列寫(xiě)成sort({age:1})就可以萧恕。

數(shù)據(jù)刪除

刪除方法:remove()刚梭,drop()

1、remove()和drop()方法的區(qū)別

舉例:db.person.remove({})
remove方法中傳遞一個(gè)空數(shù)對(duì)象票唆,會(huì)刪掉db數(shù)據(jù)庫(kù)中的person集合中的所有的文檔朴读,但是不會(huì)刪除索引

舉例:db.person.drop()
會(huì)刪除db數(shù)據(jù)庫(kù)中的person集合中的所有的文檔,并且還會(huì)刪除person集合中所有的索引走趋。效率更高磨德。

2、刪除匹配條件的文檔

舉例:db.person.remove({name:"張三"})
刪除db數(shù)據(jù)庫(kù)中person集合中name等于張三的所有文檔吆视。

3典挑、刪除一條記錄

舉例:
方法1 db.person.remove({name:"張三"},{justOne:true});
方法2 db.person.remove({name:"張三"},1);

只刪除一個(gè)匹配條件的文檔

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

修改方法:update()

1、$set操作符
舉例:db.person.update({name:"張三"},{$set:{age:19}})
修改名字為張三的人的年齡為19歲啦吧,只修改一條記錄

2您觉、$currentDate操作符的作用
舉例:db.person.update({name:"張三"},{ $set:{age:"123456"},$currentDate: { lastModified: true }})
為當(dāng)前修改的文檔添加一個(gè)最后修改時(shí)間的字段

3、{multi:true}參數(shù)的作用
舉例:db.person.update({name:"張三"},{$set:{age:20},$currentDate: { lastModified: true }},{multi:true})
默認(rèn)情況下只修改符合條件的一個(gè)文檔授滓,如果多個(gè)文檔符合條件并且都要修改只需要添加第三個(gè)參數(shù){multi:true}就可以修改多個(gè)文檔了琳水。

4、upsert選項(xiàng)的作用
舉例:db.person.update({name:"張三"},{name:'張三三',age:20,sex:"男"},{upsert:true})
默認(rèn)情況下匹配不到更新條件的文檔般堆,update將不做任何操作在孝,如果添加了{(lán)upsert:true}參數(shù),在沒(méi)有找到匹配文檔的情況下淮摔,它將會(huì)插入一個(gè)新的文檔私沮。

注意:mongondb在修改數(shù)據(jù)的時(shí)候回根據(jù)數(shù)據(jù)的類(lèi)型自動(dòng)修改文檔中原始的數(shù)據(jù)類(lèi)型,例如一個(gè)文檔中的年齡為數(shù)字類(lèi)型和橙,你修改這個(gè)記錄的時(shí)候把年齡傳入一個(gè)字符串仔燕,那么此文檔中年齡字段的類(lèi)型就變成了字符串類(lèi)型。

索引

索引通常能夠極大的提高查詢(xún)的效率魔招,就像書(shū)的目錄一樣晰搀,如果沒(méi)有索引mongodb就會(huì)去掃描集合中的每個(gè)文件并選取符合查詢(xún)條件的數(shù)據(jù),在數(shù)據(jù)量大的時(shí)候這種查詢(xún)相率很低下

使用db.集合名稱(chēng).getIndexes()獲取集合索引

> db.person.getIndexes()
[
        {  //person集合的默認(rèn)索引
                "v" : 1, //升序排列
                "key" : {
                        "_id" : 1 //索引列
                },
                "name" : "_id_", //索引名稱(chēng)
                "ns" : "test.person" //指定集合
        }
]

創(chuàng)建索引

創(chuàng)建索引的方法:createIndex()

舉例:db.person.createIndex({"name":1})
在person集合中針對(duì)name字段創(chuàng)建一個(gè)升序排列的索引

> db.person.getIndexes()
[
        { // 默認(rèn)索引
                "v" : 1,
                "key" : {
                        "_id" : 1
                },
                "name" : "_id_",
                "ns" : "test.person"
        },
        { //新創(chuàng)建的索引
                "v" : 1,
                "key" : {
                        "name" : 1
                },
                "name" : "name_1",
                "ns" : "test.person"
        }
]

刪除索引

刪除索引使用命令:dropIndex()
舉例:db.person.dropIndexes({"name":1})

> db.person.getIndexes() //查詢(xún)索引
[
        {
                "v" : 1,
                "key" : {
                        "_id" : 1
                },
                "name" : "_id_",
                "ns" : "test.person"
        },
        {
                "v" : 1,
                "key" : {
                        "name" : 1
                },
                "name" : "name_1",
                "ns" : "test.person"
        }
]
> db.person.dropIndex({"name":1})  //刪除
{ "nIndexesWas" : 2, "ok" : 1 }
> db.person.getIndexes() //查詢(xún)索引
[
        {
                "v" : 1,
                "key" : {
                        "_id" : 1
                },
                "name" : "_id_",
                "ns" : "test.person"
        }
]

刪除全部索引使用命令:dropIndexes()
舉例:db.person.dropIndexes()

> db.person.getIndexes() //查詢(xún)索引
[
        {
                "v" : 1,
                "key" : {
                        "_id" : 1
                },
                "name" : "_id_",
                "ns" : "test.person"
        },
        {
                "v" : 1,
                "key" : {
                        "name" : 1
                },
                "name" : "name_1",
                "ns" : "test.person"
        }
]
> db.person.dropIndexes() //刪除全部索引
{
        "nIndexesWas" : 2,
        "msg" : "non-_id indexes dropped for collection",
        "ok" : 1
}
> db.person.getIndexes() //查詢(xún)索引
[
        {
                "v" : 1,
                "key" : {
                        "_id" : 1
                },
                "name" : "_id_",
                "ns" : "test.person"
        }
]

刪除全部索引指的是:name為非id的索引(默認(rèn)索引)

導(dǎo)出數(shù)據(jù)文件

mongodump -h IP --port 端口 -u 用戶(hù)名 -p 密碼 -d 數(shù)據(jù)庫(kù) -o 文件存在路徑 
  • 如果沒(méi)有用戶(hù)誰(shuí),可以去掉-u和-p办斑。
  • 如果導(dǎo)出本機(jī)的數(shù)據(jù)庫(kù)外恕,可以去掉-h。
  • 如果是默認(rèn)端口,可以去掉--port鳞疲。
  • 如果想導(dǎo)出所有數(shù)據(jù)庫(kù)罪郊,可以去掉-d。

導(dǎo)出全部數(shù)據(jù)數(shù)據(jù)庫(kù)

mongodump -h 127.0.0.1 -o E:\mongondb\dump 

導(dǎo)入數(shù)據(jù)文件

> mongorestore -h IP --port 端口 -u 用戶(hù)名 -p 密碼 -d 數(shù)據(jù)庫(kù) --drop 文件存在路徑 

--drop參數(shù):先刪除所有的記錄建丧,然后恢復(fù)。

導(dǎo)入全部數(shù)據(jù)庫(kù)

> mongorestore E:\mongondb\dump #數(shù)據(jù)庫(kù)的備份路徑

導(dǎo)入test123數(shù)據(jù)庫(kù)

> mongorestore -d user E:\mongondb\dump\test123  #test123這個(gè)數(shù)據(jù)庫(kù)的備份路徑  
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末波势,一起剝皮案震驚了整個(gè)濱河市翎朱,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌尺铣,老刑警劉巖拴曲,帶你破解...
    沈念sama閱讀 216,470評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異凛忿,居然都是意外死亡澈灼,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,393評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門(mén)店溢,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)叁熔,“玉大人,你說(shuō)我怎么就攤上這事床牧∪倩兀” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 162,577評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵戈咳,是天一觀的道長(zhǎng)心软。 經(jīng)常有香客問(wèn)我,道長(zhǎng)著蛙,這世上最難降的妖魔是什么删铃? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,176評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮踏堡,結(jié)果婚禮上猎唁,老公的妹妹穿的比我還像新娘。我一直安慰自己顷蟆,他們只是感情好胖秒,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,189評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著慕的,像睡著了一般阎肝。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上肮街,一...
    開(kāi)封第一講書(shū)人閱讀 51,155評(píng)論 1 299
  • 那天风题,我揣著相機(jī)與錄音,去河邊找鬼。 笑死沛硅,一個(gè)胖子當(dāng)著我的面吹牛眼刃,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播摇肌,決...
    沈念sama閱讀 40,041評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼擂红,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了围小?” 一聲冷哼從身側(cè)響起昵骤,我...
    開(kāi)封第一講書(shū)人閱讀 38,903評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎肯适,沒(méi)想到半個(gè)月后变秦,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,319評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡框舔,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,539評(píng)論 2 332
  • 正文 我和宋清朗相戀三年蹦玫,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片刘绣。...
    茶點(diǎn)故事閱讀 39,703評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡樱溉,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出纬凤,到底是詐尸還是另有隱情饺窿,我是刑警寧澤,帶...
    沈念sama閱讀 35,417評(píng)論 5 343
  • 正文 年R本政府宣布移斩,位于F島的核電站肚医,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏向瓷。R本人自食惡果不足惜肠套,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,013評(píng)論 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望猖任。 院中可真熱鬧你稚,春花似錦、人聲如沸朱躺。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,664評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)长搀。三九已至宇弛,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間源请,已是汗流浹背枪芒。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,818評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工彻况, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人舅踪。 一個(gè)月前我還...
    沈念sama閱讀 47,711評(píng)論 2 368
  • 正文 我出身青樓纽甘,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親抽碌。 傳聞我的和親對(duì)象是個(gè)殘疾皇子悍赢,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,601評(píng)論 2 353

推薦閱讀更多精彩內(nèi)容

  • 關(guān)于Mongodb的全面總結(jié) MongoDB的內(nèi)部構(gòu)造《MongoDB The Definitive Guide》...
    中v中閱讀 31,928評(píng)論 2 89
  • 學(xué)習(xí)《MongoDB 權(quán)威指南·第2版》的筆記,結(jié)合 MongoDB 官方最新文檔(v3.6)货徙,簡(jiǎn)單記錄一些概念左权、...
    小魚(yú)愛(ài)小蝦閱讀 6,063評(píng)論 0 5
  • NoSql數(shù)據(jù)庫(kù)優(yōu)缺點(diǎn) 在優(yōu)勢(shì)方面主要體現(xiàn)在下面幾點(diǎn): 簡(jiǎn)單的擴(kuò)展 快速的讀寫(xiě) 低廉的成本 靈活的數(shù)據(jù)模型 在不足...
    dreamer_lk閱讀 2,718評(píng)論 0 6
  • //使用配置文件啟動(dòng)(如未設(shè)置環(huán)境變量需要在安裝路徑的bin文件夾下運(yùn)行)mongod --config c:\m...
    Anon_0507閱讀 508評(píng)論 0 0
  • 簡(jiǎn)介 MongoDB 是一個(gè)基于分布式文件存儲(chǔ)的NoSQL數(shù)據(jù)庫(kù) 由C++語(yǔ)言編寫(xiě),運(yùn)行穩(wěn)定破婆,性能高 旨在為 WE...
    大熊_7d48閱讀 36,812評(píng)論 1 9