MongoDB v4.0 命令

MongoDB v4.0 命令

官方文檔 > 點(diǎn)這里 <

操作系統(tǒng)庫(kù)

#操作管理員庫(kù)
use admin
#鑒權(quán)
db.auth("root","admin");
#用戶查看(格式美化)
db.system.users.find().pretty();

#新增用戶
db.createUser({
    user: 'root1',
    pwd: 'admin1',
    roles: [ { role: "dbOwner", db: "yapi" }]
});
  
#更新用戶信息/密碼/權(quán)限
db.updateUser("root1",{
    pwd: "admin2",
    roles:
    [{
        role: "root",
        db: "admin"
      },{
        role: "userAdminAnyDatabase",
        db: "admin"
      },{
        role: "readWriteAnyDatabase",
        db: "admin"
      },{
        role: "dbAdminAnyDatabase",
        db: "admin"
}]})

#刪除數(shù)據(jù)庫(kù)所屬用戶
db.dropUser("root1");

操作自定義庫(kù)

#操作自定義庫(kù)
use persionalDB

#鑒權(quán)
db.auth("user","pwd");

#創(chuàng)建數(shù)據(jù)庫(kù)所屬用戶
db.createUser({
    user: 'username1',
    pwd: 'password1',
    roles: [ { role: "dbOwner", db: "yapi" }]
});
  
#更新用戶信息/密碼/權(quán)限
db.updateUser("username1",{
    pwd: "NEW pass",
    roles:
    [{
        role: "root",
        db: "admin"
      },{
        role: "userAdminAnyDatabase",
        db: "admin"
      },{
        role: "readWriteAnyDatabase",
        db: "admin"
      },{
        role: "dbAdminAnyDatabase",
        db: "admin"
}]});

#刪除數(shù)據(jù)庫(kù)所屬用戶
db.dropUser("username1");

1.0.0 基礎(chǔ)操作 [collection]= 所查集合名

use [db_name];

db.[collection].insert({[title]:'[value]'});
eg: 
    db.hellocollction.insert({name:'hello'});

# 單個(gè)插入
db.inventory.insertOne(
   { item: "canvas", 
     qty: 100, 
     tags: ["cotton"], 
     size: { 
            h: 28, 
            w: 35.5, 
            uom: "cm" 
        } 
    }
)
# 批量插入
db.inventory.insertMany([
   { item: "journal", qty: 25, tags: ["blank", "red"], size: { h: 14, w: 21, uom: "cm" } },
   { item: "mat", qty: 85, tags: ["gray"], size: { h: 27.9, w: 35.5, uom: "cm" } },
   { item: "mousepad", qty: 25, tags: ["gel", "blue"], size: { h: 19, w: 22.85, uom: "cm" } }
])

1.1 ============>增<============

  • db.[collection].insertOne()/insertMany()
title

1.2 ============>查<============

  • db.[[collection]].find()
title

1.3 ============>改<============

  • db.[collection].updateOne()/updateMany()/replaceOne()
title

1.4 ============>刪<============

  • db.collection.deleteOne()/deleteMany()
title

2.0 高級(jí): 聯(lián)表查詢 Join

初始數(shù)據(jù)

db.product.insert({"_id":1,"productname":"商品1","price":15});
db.product.insert({"_id":2,"productname":"商品2","price":36});
 
db.order.insert({"_id":1,"pid":1,"ordername":"訂單1","uid":1});
db.order.insert({"_id":2,"pid":2,"ordername":"訂單2","uid":2});
db.order.insert({"_id":3,"pid":2,"ordername":"訂單3","uid":2});
db.order.insert({"_id":4,"pid":1,"ordername":"訂單4","uid":1});
 
db.user.insert({"_id":1,"username":1});
db.user.insert({"_id":2,"username":2});
 
db.product.find();
db.order.find();
db.user.find();

2.1 $lookup 兩表關(guān)聯(lián)join

db.product.aggregate([
    {
      $lookup:
        {
          from: "order",
          localField: "_id",
          foreignField: "pid",
          as: "inventory_docs"
        }
   }
]);
#結(jié)果:
{
    "_id" : 1.0,
    "productname" : "商品1",
    "price" : 15.0,
    "inventory_docs" : [
        {
            "_id" : 1.0,
            "pid" : 1.0,
            "ordername" : "訂單1"
        },
        {
            "_id" : 4.0,
            "pid" : 1.0,
            "ordername" : "訂單4"
        }
    ]
}

lookup 就是使用 aggregate 的 lookup 屬性,lookup 操作需要一個(gè)四個(gè)參數(shù)的對(duì)象:

  • localField:在輸入文檔中的查找字段
  • from:需要連接的集合
  • foreignField:需要在from集合中查找的字段
  • as:輸出的字段名字

2.2 $lookup 三表關(guān)聯(lián)join

db.order.aggregate([
    {
        "lookup": {
            "from": "product",
            "localField": "pid",
            "foreignField": "_id",
            "as": "inventory_docs"
        }
    },{
        "lookup": {
            "from": "user",
            "localField": "uid",
            "foreignField": "_id",
            "as": "user_docs"
        }
    }
]);

除了 $lookup宝穗,populate 也可以用來(lái)進(jìn)行關(guān)聯(lián)查詢

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末逮矛,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子鲸伴,更是在濱河造成了極大的恐慌,老刑警劉巖汞窗,帶你破解...
    沈念sama閱讀 222,627評(píng)論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件赡译,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡蝌焚,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,180評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門品腹,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)舞吭,“玉大人泡垃,你說(shuō)我怎么就攤上這事羡鸥。” “怎么了存和?”我有些...
    開(kāi)封第一講書人閱讀 169,346評(píng)論 0 362
  • 文/不壞的土叔 我叫張陵衷旅,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我茄袖,道長(zhǎng),這世上最難降的妖魔是什么家乘? 我笑而不...
    開(kāi)封第一講書人閱讀 60,097評(píng)論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮耀找,結(jié)果婚禮上业崖,老公的妹妹穿的比我還像新娘。我一直安慰自己复罐,他們只是感情好涝登,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,100評(píng)論 6 398
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著趟济,像睡著了一般咽笼。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上媳纬,一...
    開(kāi)封第一講書人閱讀 52,696評(píng)論 1 312
  • 那天,我揣著相機(jī)與錄音钮惠,去河邊找鬼预明。 笑死,一個(gè)胖子當(dāng)著我的面吹牛撰糠,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播窗慎,決...
    沈念sama閱讀 41,165評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼遮斥,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了尉辑?” 一聲冷哼從身側(cè)響起较屿,我...
    開(kāi)封第一講書人閱讀 40,108評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎隘蝎,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體狮含,經(jīng)...
    沈念sama閱讀 46,646評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡几迄,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,709評(píng)論 3 342
  • 正文 我和宋清朗相戀三年映胁,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了甲雅。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片坑填。...
    茶點(diǎn)故事閱讀 40,861評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡弛姜,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出蚪黑,到底是詐尸還是另有隱情,我是刑警寧澤忌穿,帶...
    沈念sama閱讀 36,527評(píng)論 5 351
  • 正文 年R本政府宣布结啼,位于F島的核電站,受9級(jí)特大地震影響朴译,放射性物質(zhì)發(fā)生泄漏属铁。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,196評(píng)論 3 336
  • 文/蒙蒙 一焦蘑、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧狡逢,春花似錦拼卵、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 32,698評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)详羡。三九已至嘿悬,卻和暖如春水泉,著一層夾襖步出監(jiān)牢的瞬間窒盐,已是汗流浹背钢拧。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 33,804評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留葡粒,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 49,287評(píng)論 3 379
  • 正文 我出身青樓嗽交,卻偏偏與公主長(zhǎng)得像夫壁,于是被迫代替她去往敵國(guó)和親沃疮。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,860評(píng)論 2 361

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

  • 一邑茄、MongoDB簡(jiǎn)介 1.概述 ? MongoDB是一個(gè)基于分布式文件存儲(chǔ)的數(shù)據(jù)庫(kù)俊啼,由C++語(yǔ)言編寫。旨在為WE...
    鄭元吉閱讀 978評(píng)論 0 2
  • 1. 介紹吨些、安裝、使用(簡(jiǎn)單寫寫泉手,不做詳細(xì)介紹) 1.1 介紹 Mongodb是屬于NoSql的一種數(shù)據(jù)類型偶器; M...
    Grace_ji閱讀 1,556評(píng)論 0 0
  • ORA-00001: 違反唯一約束條件 (.) 錯(cuò)誤說(shuō)明:當(dāng)在唯一索引所對(duì)應(yīng)的列上鍵入重復(fù)值時(shí),會(huì)觸發(fā)此異常屏轰。 O...
    我想起個(gè)好名字閱讀 5,342評(píng)論 0 9
  • 一、MongoDB簡(jiǎn)介 概述MongoDB是一個(gè)基于分布式文件存儲(chǔ)的數(shù)據(jù)庫(kù)姆吭,由C++語(yǔ)言編寫唁盏。旨在為WEB應(yīng)用提供...
    EndEvent閱讀 1,164評(píng)論 1 4
  • 1.MongDB 簡(jiǎn)介 MongoDB(來(lái)自于英文單詞“Humongous”检眯,中文含義為“龐大”)是可以應(yīng)用于各種...
    我沒(méi)有三顆心臟閱讀 1,173評(píng)論 1 12