簡單命令

MongoDB Shell入門例子

MongoDB Shell

db命令【創(chuàng)建切換數(shù)據(jù)庫】

  • db是指您當(dāng)前的數(shù)據(jù)庫
  • 要切換數(shù)據(jù)庫业簿,請鍵入详羡。use <db>examples
    切換之前作儿,無需創(chuàng)建數(shù)據(jù)庫。當(dāng)您第一次在數(shù)據(jù)庫中存儲數(shù)據(jù)時(shí)(例如在數(shù)據(jù)庫中創(chuàng)建第一個集合)雏吭,MongoDB會創(chuàng)建數(shù)據(jù)庫狡耻。
> db
test
> use mydb
switched to db mydb
> db
mydb

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

  • 集合類似于關(guān)系數(shù)據(jù)庫中的表。如果不存在集合挑胸,則在您第一次為該集合存儲數(shù)據(jù)時(shí)痒筒,MongoDB會創(chuàng)建該集合。
  • 以下示例使用該 db.collection.insertMany()方法將新 文檔插入到inventory 集合中
> db.inventory.insertMany([
...    { item: "journal", qty: 25, status: "A", size: { h: 14, w: 21, uom: "cm" }, tags: [ "blank", "red" ] },
...    { item: "notebook", qty: 50, status: "A", size: { h: 8.5, w: 11, uom: "in" }, tags: [ "red", "blank" ] },
...    { item: "paper", qty: 10, status: "D", size: { h: 8.5, w: 11, uom: "in" }, tags: [ "red", "blank", "plain" ] },
...    { item: "planner", qty: 0, status: "D", size: { h: 22.85, w: 30, uom: "cm" }, tags: [ "blank", "red" ] },
...    { item: "postcard", qty: 45, status: "A", size: { h: 10, w: 15.25, uom: "cm" }, tags: [ "blue" ] }
... ]);
{
    "acknowledged" : true,
    "insertedIds" : [
        ObjectId("5ebe42508073754f2e3f11b3"),
        ObjectId("5ebe42508073754f2e3f11b4"),
        ObjectId("5ebe42508073754f2e3f11b5"),
        ObjectId("5ebe42508073754f2e3f11b6"),
        ObjectId("5ebe42508073754f2e3f11b7")
    ]
}

查詢文檔

  • 查詢所有
    db.inventory.find({})
    db.inventory.find({}).pretty()
    要格式化結(jié)果茬贵,請將追加.pretty()到 find操作:
> db.inventory.find({})
{ "_id" : ObjectId("5ebe42508073754f2e3f11b3"), "item" : "journal", "qty" : 25, "status" : "A", "size" : { "h" : 14, "w" : 21, "uom" : "cm" }, "tags" : [ "blank", "red" ] }
{ "_id" : ObjectId("5ebe42508073754f2e3f11b4"), "item" : "notebook", "qty" : 50, "status" : "A", "size" : { "h" : 8.5, "w" : 11, "uom" : "in" }, "tags" : [ "red", "blank" ] }
{ "_id" : ObjectId("5ebe42508073754f2e3f11b5"), "item" : "paper", "qty" : 10, "status" : "D", "size" : { "h" : 8.5, "w" : 11, "uom" : "in" }, "tags" : [ "red", "blank", "plain" ] }
{ "_id" : ObjectId("5ebe42508073754f2e3f11b6"), "item" : "planner", "qty" : 0, "status" : "D", "size" : { "h" : 22.85, "w" : 30, "uom" : "cm" }, "tags" : [ "blank", "red" ] }
{ "_id" : ObjectId("5ebe42508073754f2e3f11b7"), "item" : "postcard", "qty" : 45, "status" : "A", "size" : { "h" : 10, "w" : 15.25, "uom" : "cm" }, "tags" : [ "blue" ] }
> db.inventory.find({}).pretty()
{
    "_id" : ObjectId("5ebe42508073754f2e3f11b3"),
    "item" : "journal",
    "qty" : 25,
    "status" : "A",
    "size" : {
        "h" : 14,
        "w" : 21,
        "uom" : "cm"
    },
    "tags" : [
        "blank",
        "red"
    ]
}
{
    "_id" : ObjectId("5ebe42508073754f2e3f11b4"),
    "item" : "notebook",
    "qty" : 50,
    "status" : "A",
    "size" : {
        "h" : 8.5,
        "w" : 11,
        "uom" : "in"
    },
    "tags" : [
        "red",
        "blank"
    ]
}
{
    "_id" : ObjectId("5ebe42508073754f2e3f11b5"),
    "item" : "paper",
    "qty" : 10,
    "status" : "D",
    "size" : {
        "h" : 8.5,
        "w" : 11,
        "uom" : "in"
    },
    "tags" : [
        "red",
        "blank",
        "plain"
    ]
}
{
    "_id" : ObjectId("5ebe42508073754f2e3f11b6"),
    "item" : "planner",
    "qty" : 0,
    "status" : "D",
    "size" : {
        "h" : 22.85,
        "w" : 30,
        "uom" : "cm"
    },
    "tags" : [
        "blank",
        "red"
    ]
}
{
    "_id" : ObjectId("5ebe42508073754f2e3f11b7"),
    "item" : "postcard",
    "qty" : 45,
    "status" : "A",
    "size" : {
        "h" : 10,
        "w" : 15.25,
        "uom" : "cm"
    },
    "tags" : [
        "blue"
    ]
}
> 

條件查找

對于相等匹配(即<field>equals <value>)簿透,在查詢過濾器文檔中指定并傳遞給該 方法。<field>:<value>db.collection.find()

  • 多條件查找
> db.inventory.find( { qty: 0, status: "D" } );
{ "_id" : ObjectId("5ebe42508073754f2e3f11b6"), "item" : "planner", "qty" : 0, "status" : "D", "size" : { "h" : 22.85, "w" : 30, "uom" : "cm" }, "tags" : [ "blank", "red" ] } 
  • 嵌套條件查找
> db.inventory.find( { "size.uom": "in" } )
{ "_id" : ObjectId("5ebe42508073754f2e3f11b4"), "item" : "notebook", "qty" : 50, "status" : "A", "size" : { "h" : 8.5, "w" : 11, "uom" : "in" }, "tags" : [ "red", "blank" ] }
{ "_id" : ObjectId("5ebe42508073754f2e3f11b5"), "item" : "paper", "qty" : 10, "status" : "D", "size" : { "h" : 8.5, "w" : 11, "uom" : "in" }, "tags" : [ "red", "blank", "plain" ] }

-- 嵌入式文檔上的相等匹配要求完全匹配闷沥,包括字段順序萎战。
> db.inventory.find( { size: { h: 14, w: 21, uom: "cm" } } )
{ "_id" : ObjectId("5ebe42508073754f2e3f11b3"), "item" : "journal", "qty" : 25, "status" : "A", "size" : { "h" : 14, "w" : 21, "uom" : "cm" }, "tags" : [ "blank", "red" ] }
  • 數(shù)組查找
    其中tags數(shù)組包含"red"為其元素之一,如果該tags字段是字符串而不是數(shù)組舆逃,則查詢只是一個相等匹配蚂维。
> db.inventory.find( { tags: "red" } )
{ "_id" : ObjectId("5ebe42508073754f2e3f11b3"), "item" : "journal", "qty" : 25, "status" : "A", "size" : { "h" : 14, "w" : 21, "uom" : "cm" }, "tags" : [ "blank", "red" ] }
{ "_id" : ObjectId("5ebe42508073754f2e3f11b4"), "item" : "notebook", "qty" : 50, "status" : "A", "size" : { "h" : 8.5, "w" : 11, "uom" : "in" }, "tags" : [ "red", "blank" ] }
{ "_id" : ObjectId("5ebe42508073754f2e3f11b5"), "item" : "paper", "qty" : 10, "status" : "D", "size" : { "h" : 8.5, "w" : 11, "uom" : "in" }, "tags" : [ "red", "blank", "plain" ] }
{ "_id" : ObjectId("5ebe42508073754f2e3f11b6"), "item" : "planner", "qty" : 0, "status" : "D", "size" : { "h" : 22.85, "w" : 30, "uom" : "cm" }, "tags" : [ "blank", "red" ] }

-- 以返回該tags字段與指定數(shù)組完全匹配的文檔戳粒,包括順序
> db.inventory.find( { tags: [ "red", "blank" ] } )
{ "_id" : ObjectId("5ebe42508073754f2e3f11b4"), "item" : "notebook", "qty" : 50, "status" : "A", "size" : { "h" : 8.5, "w" : 11, "uom" : "in" }, "tags" : [ "red", "blank" ] }

要返回的字段,默認(rèn)返回所有

要指定要返回的字段虫啥,請將投影文檔傳遞給該 方法蔚约。在投影文檔中,指定:db.collection.find(<query document>, <projection document>)

  • <field>: 1 在返回的文檔中包含一個字段
  • <field>: 0 在返回的文檔中排除字段
    您不必指定_id字段即可返回該字段涂籽。默認(rèn)情況下返回苹祟。要排除該字段,請0在投影文檔中將其設(shè)置為 评雌。
> db.inventory.find( { }, { item: 1, status: 1 } );
{ "_id" : ObjectId("5ebe42508073754f2e3f11b3"), "item" : "journal", "status" : "A" }
{ "_id" : ObjectId("5ebe42508073754f2e3f11b4"), "item" : "notebook", "status" : "A" }
{ "_id" : ObjectId("5ebe42508073754f2e3f11b5"), "item" : "paper", "status" : "D" }
{ "_id" : ObjectId("5ebe42508073754f2e3f11b6"), "item" : "planner", "status" : "D" }
{ "_id" : ObjectId("5ebe42508073754f2e3f11b7"), "item" : "postcard", "status" : "A" }

-- 排除id字段
> db.inventory.find( {}, { _id: 0, item: 1, status: 1 } );
{ "item" : "journal", "status" : "A" }
{ "item" : "notebook", "status" : "A" }
{ "item" : "paper", "status" : "D" }
{ "item" : "planner", "status" : "D" }
{ "item" : "postcard", "status" : "A" }
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末树枫,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子景东,更是在濱河造成了極大的恐慌砂轻,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,997評論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件斤吐,死亡現(xiàn)場離奇詭異搔涝,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)和措,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,603評論 3 392
  • 文/潘曉璐 我一進(jìn)店門庄呈,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人派阱,你說我怎么就攤上這事诬留。” “怎么了颁褂?”我有些...
    開封第一講書人閱讀 163,359評論 0 353
  • 文/不壞的土叔 我叫張陵故响,是天一觀的道長。 經(jīng)常有香客問我颁独,道長彩届,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,309評論 1 292
  • 正文 為了忘掉前任誓酒,我火速辦了婚禮樟蠕,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘靠柑。我一直安慰自己寨辩,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,346評論 6 390
  • 文/花漫 我一把揭開白布歼冰。 她就那樣靜靜地躺著靡狞,像睡著了一般。 火紅的嫁衣襯著肌膚如雪隔嫡。 梳的紋絲不亂的頭發(fā)上甸怕,一...
    開封第一講書人閱讀 51,258評論 1 300
  • 那天甘穿,我揣著相機(jī)與錄音,去河邊找鬼梢杭。 笑死温兼,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的武契。 我是一名探鬼主播募判,決...
    沈念sama閱讀 40,122評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼咒唆!你這毒婦竟也來了届垫?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,970評論 0 275
  • 序言:老撾萬榮一對情侶失蹤钧排,失蹤者是張志新(化名)和其女友劉穎敦腔,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體恨溜,經(jīng)...
    沈念sama閱讀 45,403評論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,596評論 3 334
  • 正文 我和宋清朗相戀三年找前,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了糟袁。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,769評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡躺盛,死狀恐怖项戴,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情槽惫,我是刑警寧澤周叮,帶...
    沈念sama閱讀 35,464評論 5 344
  • 正文 年R本政府宣布,位于F島的核電站界斜,受9級特大地震影響仿耽,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜各薇,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,075評論 3 327
  • 文/蒙蒙 一项贺、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧峭判,春花似錦开缎、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,705評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至疗认,卻和暖如春完残,著一層夾襖步出監(jiān)牢的瞬間伏钠,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,848評論 1 269
  • 我被黑心中介騙來泰國打工坏怪, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留贝润,地道東北人。 一個月前我還...
    沈念sama閱讀 47,831評論 2 370
  • 正文 我出身青樓铝宵,卻偏偏與公主長得像打掘,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子鹏秋,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,678評論 2 354