乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      MongoDB 關(guān)于MongoDB Shell的使用 (三)

       liang1234_ 2019-06-17

       
          在本文中,將介紹mongo shell的基本知識(shí),以及如何使用它來(lái)管理MongoDB文檔。為了使讀者更容易地理解和實(shí)踐概念,MongoDB shell的引入被分成了三個(gè)部分。
      • 第一部分介紹了數(shù)據(jù)庫(kù)的基本特性,包括基本的CRUD操作符。

      • 第二部分介紹高級(jí)查詢(xún)。

      • 第三部分解釋存儲(chǔ)和檢索數(shù)據(jù)的兩種方式:嵌入和引用。


      一、MongoDB Shell 的基本查詢(xún)

          本部分將簡(jiǎn)要討論CRUD操作(創(chuàng)建、讀取、更新和刪除)。使用基本的示例和練習(xí),您將了解如何在MongoDB中執(zhí)行這些操作。同時(shí),了解如何在MongoDB中執(zhí)行查詢(xún)。
          與用于查詢(xún)的傳統(tǒng)SQL不同,MongoDB使用它自己的類(lèi)似于json的查詢(xún)從存儲(chǔ)的數(shù)據(jù)中檢索信息的語(yǔ)言。
          在成功安裝MongoDB之后,正如在第5章中所解釋的那樣,您將導(dǎo)航到目錄 [C:\practicalmongodb\bin\] 這個(gè)文件夾擁有運(yùn)行MongoDB的所有可執(zhí)行文件。
          MongoDB shell可以通過(guò)執(zhí)行mongo可執(zhí)行文件來(lái)啟動(dòng)。
          第一步總是要啟動(dòng)數(shù)據(jù)庫(kù)服務(wù)器。打開(kāi)命令提示符(將其運(yùn)行為管理員)并發(fā)出命令CD。
          接下來(lái),運(yùn)行命令C:實(shí)用的mongodb bin mongod.exe。(如果安裝在某些情況下其他文件夾,路徑會(huì)相應(yīng)地改變。對(duì)于本章中的例子,安裝在C:\practicalmongodb文件夾。)這將啟動(dòng)數(shù)據(jù)庫(kù)服務(wù)器。




          默認(rèn)情況下,MongoDB會(huì)偵聽(tīng)本地主機(jī)接口端口27017的任何傳入連接。
          現(xiàn)在數(shù)據(jù)庫(kù)服務(wù)器已經(jīng)啟動(dòng),可以使用下面的命令向服務(wù)器發(fā)出命令mongo shell。
          在您查看mongo shell之前,讓我們簡(jiǎn)要了解一下如何使用導(dǎo)入/導(dǎo)出工具導(dǎo)入在MongoDB數(shù)據(jù)庫(kù)中導(dǎo)出數(shù)據(jù)。
          首先,創(chuàng)建一個(gè)CSV文件,以保存以下結(jié)構(gòu)的學(xué)生的記錄:名字,性別,階級(jí),分?jǐn)?shù),年齡。



      接下來(lái),將MongoDB數(shù)據(jù)庫(kù)中的數(shù)據(jù)導(dǎo)入到一個(gè)新的集合中,以便查看導(dǎo)入工具。




      簡(jiǎn)而言之,你所做的是:

          1.連接到 Mongo Shell。

          2.切換到你要用的數(shù)據(jù)庫(kù),例如admin。

          3.檢查在admin數(shù)據(jù)庫(kù)中存在的表,并show collections查看。

          4.核對(duì)你使用導(dǎo)入工具導(dǎo)入的表和數(shù)據(jù)。

          5.最后,之星find()命令來(lái)查看新表中的數(shù)據(jù)。


      也可以使用help命令來(lái)查看相關(guān)指令。


      在開(kāi)始探索之前,讓我們先簡(jiǎn)要介紹一下MongoDB術(shù)語(yǔ)和概念對(duì)應(yīng)于SQL術(shù)語(yǔ)和概念。表6-1總結(jié)了這一點(diǎn)。




          1.1 Create and Insert

      現(xiàn)在,您將了解如何創(chuàng)建數(shù)據(jù)庫(kù)和集合。如前所述,這些文檔MongoDB是JSON格式的。
      首先,通過(guò)發(fā)出db命令,您將確認(rèn)上下文是mydbpoc數(shù)據(jù)庫(kù)。

      > db
      mydbpoc

      現(xiàn)在,您將看到如何創(chuàng)建文檔。
      第一個(gè)文檔符合第一個(gè)原型而第二個(gè)文檔則符合第二個(gè)原型。
      您已經(jīng)創(chuàng)建了兩個(gè)名為user1和user2的文檔。



      接下來(lái),您將按照以下順序?qū)⑦@兩個(gè)文檔(user1和user2)添加到用戶(hù)集合中的操作:

      > db.users.insert(user1)
      > db.users.insert(user2)

      上面的操作不僅會(huì)將這兩個(gè)文檔插入到用戶(hù)的集合中,而且還會(huì)創(chuàng)建集合以及數(shù)據(jù)庫(kù)。
      同樣可以使用show collection和show dbs進(jìn)行驗(yàn)證命令。

      如前所述,dbs將顯示數(shù)據(jù)庫(kù)的列表。



      show collections 將在當(dāng)前數(shù)據(jù)庫(kù)中顯示集合的列表。



      與集合用戶(hù)一起,系統(tǒng)。索引集合也會(huì)顯示出來(lái)。這個(gè)系統(tǒng)。索引收集是在創(chuàng)建數(shù)據(jù)庫(kù)時(shí)默認(rèn)創(chuàng)建的。它管理著所有的信息數(shù)據(jù)庫(kù)中所有集合的索引。
      執(zhí)行命令db.users.find()將在用戶(hù)集合中顯示文檔。



      您可以看到您創(chuàng)建的兩個(gè)文檔被顯示出來(lái)。除了你添加到的字段之外對(duì)于所有的文檔,都會(huì)生成一個(gè)額外的id字段。所有文檔必須具有惟一的id字段。
      如果您沒(méi)有明確指定,那么將自動(dòng)分配相同的值作為MongoDB的唯一對(duì)象ID,如上例所示。您沒(méi)有顯式地插入一個(gè)id字段,但是當(dāng)您使用find()命令來(lái)顯示文檔時(shí)
      可以看到與每個(gè)文檔相關(guān)聯(lián)的id字段。這背后的原因是,默認(rèn)情況下,索引是在id字段上創(chuàng)建的,可以通過(guò)發(fā)出該字段來(lái)驗(yàn)證在系統(tǒng)上找到命令。收集索引。


      可以使用ensureIndex()和dropIndex()從集合中添加或刪除新索引命令。我們將在本章后面討論這個(gè)問(wèn)題。默認(rèn)情況下,在所有id字段上創(chuàng)建一個(gè)索引集合。
      這個(gè)默認(rèn)索引不能被刪除。

          1.2 Explicitly Creating Collections

          在上面的例子中,第一個(gè)插入操作隱式地創(chuàng)建了集合。但是,用戶(hù)也可以在執(zhí)行insert語(yǔ)句之前顯式地創(chuàng)建一個(gè)集合。

          1.3 Inserting Documents Using Loop

      還可以使用for循環(huán)將文檔添加到集合中。下面的代碼將插入用戶(hù)使用的代碼。



      為了驗(yàn)證插入是否成功,可以在集合上運(yùn)行find命令。



      用戶(hù)出現(xiàn)在集合中。在您進(jìn)一步了解之前,讓我們先了解一下它的“類(lèi)型”聲明。find命令將一個(gè)光標(biāo)返回到結(jié)果集,而不是顯示所有的文檔(可以是成千上萬(wàn)的結(jié)果)在一個(gè)屏幕上,光標(biāo)顯示了前20個(gè)文檔并等待請(qǐng)求迭代(it)顯示下一個(gè)20,直到所有結(jié)果集都顯示出來(lái)。所產(chǎn)生的光標(biāo)也可以被分配給一個(gè)變量,然后通過(guò)編程方式對(duì)其進(jìn)行迭代使用while循環(huán)。光標(biāo)對(duì)象也可以作為數(shù)組進(jìn)行操作。在您的例子中,如果您輸入“it”并按Enter鍵,下面將顯示以下內(nèi)容:



      因?yàn)橹皇O聝蓚€(gè)文檔,所以它顯示剩下的兩個(gè)文檔。





          1.4 Inserting by Explicitly Specifying _id

      在前面的插入示例中,沒(méi)有指定id字段,因此它是隱式添加的。在接下來(lái)的例如,您將看到如何在一個(gè)集合中插入文檔時(shí)顯式地指定id字段。在顯式地指定id字段時(shí),您必須記住字段的惟一性;否則插入就會(huì)失敗。



          1.5 Update

      在本節(jié)中,您將探索update()命令,該命令用于更新集合中的文檔。update()方法在默認(rèn)情況下更新一個(gè)文檔。如果你需要更新所有的文檔匹配選擇條件,您可以通過(guò)將多個(gè)選項(xiàng)設(shè)置為true來(lái)實(shí)現(xiàn)。讓我們從更新現(xiàn)有列的值開(kāi)始。$set操作符將用于更新的記錄。下面的命令更新了所有女性用戶(hù)的英國(guó):




      要檢查更新是否已經(jīng)發(fā)生,請(qǐng)發(fā)出一個(gè)find命令來(lái)檢查所有的女性用戶(hù)。



      如果檢查輸出,就會(huì)看到只有第一個(gè)文檔記錄被更新,這是默認(rèn)值由于沒(méi)有指定多個(gè)選項(xiàng),所以更新的行為。
      現(xiàn)在,讓我們更改update命令,并包含多選項(xiàng):




      再次發(fā)出find命令來(lái)檢查這個(gè)國(guó)家是否已經(jīng)為所有女性更新過(guò)員工或不是。發(fā)出find命令將返回以下輸出:




      正如您所看到的,這個(gè)國(guó)家被更新到英國(guó),以滿(mǎn)足所有符合條件的記錄。
      在實(shí)際應(yīng)用程序中工作時(shí),您可能會(huì)遇到可能出現(xiàn)的模式演化最后從文檔中添加或刪除字段。我們來(lái)看看如何在這個(gè)過(guò)程中進(jìn)行這些修改MongoDB數(shù)據(jù)庫(kù)。
      update() 操作可以在文檔級(jí)別使用,這有助于更新單個(gè)文件在一個(gè)集合中文檔或一組文檔。
      接下來(lái),讓我們看看如何向文檔中添加新字段。為了向文檔中添加字段,使用使用$set操作符和多選項(xiàng)的update()命令。
      如果使用$set的字段名,這是不存在的,那么該字段將被添加到文檔中。下面的命令將把字段公司添加到所有文檔:



      對(duì)用戶(hù)的集合發(fā)出find命令,您將發(fā)現(xiàn)添加到所有文檔的新字段



      如果您使用文檔中已有的字段執(zhí)行update()命令,它將更新該字段價(jià)值;但是,如果該字段沒(méi)有出現(xiàn)在文檔中,那么該字段將被添加到文檔中。
      接下來(lái),您將看到如何使用$unset操作符使用相同的update()命令來(lái)刪除字段從文檔。
      以下命令將從所有文檔中刪除字段公司:



      可以通過(guò)向用戶(hù)集合發(fā)出find()命令來(lái)檢查這一點(diǎn)。你可以看到公司字段已從文件中刪除。




          1.6 Delete

      要?jiǎng)h除集合中的文檔,請(qǐng)使用remove()方法。如果你指定了一個(gè)選擇條件符合標(biāo)準(zhǔn)的文件將被刪除。如果沒(méi)有指定任何標(biāo)準(zhǔn),那么所有的文檔將被刪除。

      下面的命令將刪除性別='M':



      可以通過(guò)向用戶(hù)發(fā)出find()命令來(lái)驗(yàn)證這一點(diǎn):



      沒(méi)有返回的文檔。
      以下命令將刪除所有文檔:




      如您所見(jiàn),沒(méi)有返回任何文檔。
      最后,如果您想要?jiǎng)h除集合,下面的命令將刪除集合:



      為了驗(yàn)證是否刪除了集合,發(fā)出show集合命令。



      正如您所看到的,集合名稱(chēng)沒(méi)有顯示,確認(rèn)已經(jīng)刪除了集合從數(shù)據(jù)庫(kù)中。在介紹了基本的創(chuàng)建、更新和刪除操作之后,下一節(jié)將向您展示如何執(zhí)行讀操作。

        本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶(hù)發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶(hù) 評(píng)論公約

        類(lèi)似文章 更多