mongoDB 基本使用

數(shù)據(jù)庫帳號的創(chuàng)建與使用

// mongodb 未開auth時 創(chuàng)建超級管理員
mongo --port 27017
use admin
db.createUser({user: 'root', pwd: 'root', roles: [{role: 'userAdminAnyDatabase', db: 'admin'}]})


// 停止mongodb
kill -2 pid 或 db.shutdownServer() 

// 重啟mongodb 開啟auth
mongo --auth --port 27017
use admin
db.auth('root', 'root')

// 切換到普通db
use students
db.createUser({user: 'std', pwd: 'stdpwd', roles: [role: 'readWrite', db: 'students']})

// 其他操作
db.getUser('std');
db.system.users.find({});  or show users
show collections
// 刪除某個collection
db.collectionName.drop()

// 之后訪問相應(yīng)的數(shù)據(jù)庫
mongo mongodb://std:stdpwd@120.12.12.1:27017/student

參考
不知博客
官方說明

數(shù)據(jù)的備份還原

// 備份數(shù)據(jù), 使用mongodump
mongodump -h dbhost:27017 -d dbname -u username -p password -o dbdirectory

// 還原數(shù)據(jù)
mongorestore -h dbhost:27017 -d dbname -u username -p password dbdata

數(shù)據(jù)導(dǎo)入與導(dǎo)出

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

mongoexport --host monogo_address --db db_name --collection collection_name --out output_file_name  --fields "field_1, field_2"  --type output_type_like_csv_default_json  --jsonArray  --limit limit_count --skip skip_count

注意:

  1. 導(dǎo)出類型為json時導(dǎo)出的數(shù)據(jù)中必然包括 _id 字段, 可設(shè)置 --jsonArray 將數(shù)據(jù)從 {}{}{} 轉(zhuǎn)成 [{},{},{}]
  2. 導(dǎo)出類型為csv時必須指定 --fields

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

mongoimport -h monogo_address --db db_name --collection collection_name --file output_file_name --type csv|json(default) --fields "field_1, field_2"

數(shù)組的更新

// collection 單條實(shí)例數(shù)據(jù)結(jié)構(gòu)
{
  _id: '123',
  arr: [
    {name: 'a', age: 12, courses: [{name: 'c++', grade: 123}]},
    {name: 'b', age: 13},
  ],
}

添加obj到數(shù)組

  • 添加不重復(fù)的obj --$addToSet
    db.collection.update({_id: '123'}, {$addToSet: {arr: {name: 'c', age: 14}}})
  • 添加可重復(fù)的obj -- $push
    嚴(yán)格匹配:db.collection.update({_id: '123'}, {$push: {arr: {name: 'a', age: 12}}})

    匹配存在:``
  • 一次添加多個obj --$push $each
    db.collection.update({_id: '123'}, {$push: {arr: {$each: [{name: 'd', age: 15}, {name: 'e', age: 16}]}}})

$each還可配合其他操作符使用:

  • 設(shè)置數(shù)組的排序 $sort
    db.collection.update({_id: '123'}, {$push: {arr: {$each: [{name: 'd', age: 15}, {name: 'e', age: 16}], $sort: {age: -1} }}}) 設(shè)置數(shù)組按age由大到小排
  • 設(shè)置插入的位置 $position
    db.collection.update({_id: '123'}, {$push: {arr: {$each: [{name: 'd', age: 15}, {name: 'e', age: 16}], $position: 2 }}}) 設(shè)置插入的位置在index為2處)
  • 設(shè)置數(shù)組的切除 $slice
    db.collection.update({_id: '123'}, {$push: {arr: {$each: [{name: 'd', age: 15}, {name: 'e', age: 16}], $slice: -3 }}}) 設(shè)置只留下后三個)

從數(shù)組中刪除特定obj

db.collection.update({_id:'123'}, {$pull: {name: 'a', age: 12}}})

更新數(shù)值中特定對象的特定key

  • 一維數(shù)組
    db.collection.update({_id: '123', 'arr.name': 'a'}, {$set: {'arr.$.age': 13}}})
  • 多維數(shù)組
    db.collection.update({_id: '123', 'arr.0.courses.0.name': 'c++'}, {$inc: {arr.0.courses.0.grade: 10}})

插入數(shù)據(jù)

  • 批量插入數(shù)據(jù) (mongoDB V3.2)
    db.collections.insertmany()
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末仑扑,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子阶冈,更是在濱河造成了極大的恐慌,老刑警劉巖咐鹤,帶你破解...
    沈念sama閱讀 211,743評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件谎替,死亡現(xiàn)場離奇詭異,居然都是意外死亡划煮,警方通過查閱死者的電腦和手機(jī)拐迁,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,296評論 3 385
  • 文/潘曉璐 我一進(jìn)店門蹭劈,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人线召,你說我怎么就攤上這事铺韧。” “怎么了缓淹?”我有些...
    開封第一講書人閱讀 157,285評論 0 348
  • 文/不壞的土叔 我叫張陵哈打,是天一觀的道長塔逃。 經(jīng)常有香客問我,道長料仗,這世上最難降的妖魔是什么湾盗? 我笑而不...
    開封第一講書人閱讀 56,485評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮立轧,結(jié)果婚禮上格粪,老公的妹妹穿的比我還像新娘。我一直安慰自己氛改,他們只是感情好帐萎,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,581評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著平窘,像睡著了一般吓肋。 火紅的嫁衣襯著肌膚如雪凳怨。 梳的紋絲不亂的頭發(fā)上瑰艘,一...
    開封第一講書人閱讀 49,821評論 1 290
  • 那天,我揣著相機(jī)與錄音肤舞,去河邊找鬼紫新。 笑死,一個胖子當(dāng)著我的面吹牛李剖,可吹牛的內(nèi)容都是我干的芒率。 我是一名探鬼主播,決...
    沈念sama閱讀 38,960評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼篙顺,長吁一口氣:“原來是場噩夢啊……” “哼偶芍!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起德玫,我...
    開封第一講書人閱讀 37,719評論 0 266
  • 序言:老撾萬榮一對情侶失蹤匪蟀,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后宰僧,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體材彪,經(jīng)...
    沈念sama閱讀 44,186評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,516評論 2 327
  • 正文 我和宋清朗相戀三年琴儿,在試婚紗的時候發(fā)現(xiàn)自己被綠了段化。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,650評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡造成,死狀恐怖显熏,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情晒屎,我是刑警寧澤喘蟆,帶...
    沈念sama閱讀 34,329評論 4 330
  • 正文 年R本政府宣布现诀,位于F島的核電站,受9級特大地震影響履肃,放射性物質(zhì)發(fā)生泄漏仔沿。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,936評論 3 313
  • 文/蒙蒙 一尺棋、第九天 我趴在偏房一處隱蔽的房頂上張望封锉。 院中可真熱鬧,春花似錦膘螟、人聲如沸成福。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,757評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽奴艾。三九已至,卻和暖如春内斯,著一層夾襖步出監(jiān)牢的瞬間蕴潦,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,991評論 1 266
  • 我被黑心中介騙來泰國打工俘闯, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留潭苞,地道東北人。 一個月前我還...
    沈念sama閱讀 46,370評論 2 360
  • 正文 我出身青樓真朗,卻偏偏與公主長得像此疹,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子遮婶,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,527評論 2 349

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