1. 程式人生 > >MongoDB 關於MongoDB Shell的使用 (三)

MongoDB 關於MongoDB Shell的使用 (三)

MongoDB 關於MongoDB Shell的使用 (三)

 
    在本文中,將介紹mongo shell的基本知識,以及如何使用它來管理MongoDB文件。為了使讀者更容易地理解和實踐概念,MongoDB shell的引入被分成了三個部分。
  • 第一部分介紹了資料庫的基本特性,包括基本的CRUD操作符。
  • 第二部分介紹高階查詢。
  • 第三部分解釋儲存和檢索資料的兩種方式:嵌入和引用。
一、MongoDBShell的基本查詢     本部分將簡要討論CRUD操作(建立、讀取、更新和刪除)。使用基本的示例和練習,您將瞭解如何在MongoDB中執行這些操作。同時,瞭解如何在MongoDB中執行查詢。
    與用於查詢的傳統SQL不同,MongoDB使用它自己的類似於json的查詢從儲存的資料中檢索資訊的語言。     在成功安裝MongoDB之後,正如在第5章中所解釋的那樣,您將導航到目錄 [C:\practicalmongodb\bin\] 這個資料夾擁有執行MongoDB的所有可執行檔案。     MongoDB shell可以通過執行mongo可執行檔案來啟動。     第一步總是要啟動資料庫伺服器。開啟命令提示符(將其執行為管理員)併發出命令CD。     接下來,執行命令C:實用的mongodb bin mongod.exe。(如果安裝在某些情況下其他資料夾,路徑會相應地改變。
對於本章中的例子,安裝在C:\practicalmongodb資料夾。)這將啟動資料庫伺服器。
    預設情況下,MongoDB會偵聽本地主機介面埠27017的任何傳入連線。     現在資料庫伺服器已經啟動,可以使用下面的命令向伺服器發出命令mongo shell。     在您檢視mongo shell之前,讓我們簡要了解一下如何使用匯入/匯出工具匯入在MongoDB資料庫中匯出資料。     首先,建立一個CSV檔案,以儲存以下結構的學生的記錄:名字,性別,階級,分數,年齡。
接下來,將MongoDB資料庫中的資料匯入到一個新的集合中,以便檢視匯入工具。
簡而言之,你所做的是:
    1.連線到 Mongo Shell。     2.切換到你要用的資料庫,例如admin。     3.檢查在admin資料庫中存在的表,並show collections檢視。     4.核對你使用匯入工具匯入的表和資料。     5.最後,之星find()命令來檢視新表中的資料。 也可以使用help命令來檢視相關指令。 在開始探索之前,讓我們先簡要介紹一下MongoDB術語和概念對應於SQL術語和概念。表6-1總結了這一點。
    1.1 Create and Insert 現在,您將瞭解如何建立資料庫和集合。如前所述,這些文件MongoDB是JSON格式的。 首先,通過發出db命令,您將確認上下文是mydbpoc資料庫。 > db mydbpoc 現在,您將看到如何建立文件。 第一個文件符合第一個原型而第二個文件則符合第二個原型。 您已經建立了兩個名為user1和user2的文件。 接下來,您將按照以下順序將這兩個文件(user1和user2)新增到使用者集合中的操作: > db.users.insert(user1) > db.users.insert(user2) 上面的操作不僅會將這兩個文件插入到使用者的集合中,而且還會建立集合以及資料庫。 同樣可以使用show collection和show dbs進行驗證命令。 如前所述,dbs將顯示資料庫的列表。
show collections 將在當前資料庫中顯示集合的列表。
與集合使用者一起,系統。索引集合也會顯示出來。這個系統。索引收集是在建立資料庫時預設建立的。它管理著所有的資訊資料庫中所有集合的索引。 執行命令db.users.find()將在使用者集合中顯示文件。
您可以看到您建立的兩個文件被顯示出來。除了你新增到的欄位之外對於所有的文件,都會生成一個額外的id欄位。所有文件必須具有惟一的id欄位。 如果您沒有明確指定,那麼將自動分配相同的值作為MongoDB的唯一物件ID,如上例所示。您沒有顯式地插入一個id欄位,但是當您使用find()命令來顯示文件時 可以看到與每個文件相關聯的id欄位。這背後的原因是,預設情況下,索引是在id欄位上建立的,可以通過發出該欄位來驗證在系統上找到命令。收集索引。
可以使用ensureIndex()和dropIndex()從集合中新增或刪除新索引命令。我們將在本章後面討論這個問題。預設情況下,在所有id欄位上建立一個索引集合。 這個預設索引不能被刪除。     1.2 Explicitly Creating Collections     在上面的例子中,第一個插入操作隱式地建立了集合。但是,使用者也可以在執行insert語句之前顯式地建立一個集合。     1.3 Inserting Documents Using Loop 還可以使用for迴圈將文件新增到集合中。下面的程式碼將插入使用者使用的程式碼。
為了驗證插入是否成功,可以在集合上執行find命令。
使用者出現在集合中。在您進一步瞭解之前,讓我們先了解一下它的“型別”宣告。find命令將一個游標返回到結果集,而不是顯示所有的文件(可以是成千上萬的結果)在一個螢幕上,游標顯示了前20個文件並等待請求迭代(it)顯示下一個20,直到所有結果集都顯示出來。所產生的游標也可以被分配給一個變數,然後通過程式設計方式對其進行迭代使用while迴圈。游標物件也可以作為陣列進行操作。在您的例子中,如果您輸入“it”並按Enter鍵,下面將顯示以下內容:
因為只剩下兩個文件,所以它顯示剩下的兩個文件。

    1.4 Inserting by Explicitly Specifying _id 在前面的插入示例中,沒有指定id欄位,因此它是隱式新增的。在接下來的例如,您將看到如何在一個集合中插入文件時顯式地指定id欄位。在顯式地指定id欄位時,您必須記住欄位的惟一性;否則插入就會失敗。
    1.5 Update 在本節中,您將探索update()命令,該命令用於更新集合中的文件。update()方法在預設情況下更新一個文件。如果你需要更新所有的文件匹配選擇條件,您可以通過將多個選項設定為true來實現。讓我們從更新現有列的值開始。$set操作符將用於更新的記錄。下面的命令更新了所有女性使用者的英國:

要檢查更新是否已經發生,請發出一個find命令來檢查所有的女性使用者。
如果檢查輸出,就會看到只有第一個文件記錄被更新,這是預設值由於沒有指定多個選項,所以更新的行為。 現在,讓我們更改update命令,幷包含多選項:

再次發出find命令來檢查這個國家是否已經為所有女性更新過員工或不是。發出find命令將返回以下輸出:
正如您所看到的,這個國家被更新到英國,以滿足所有符合條件的記錄。 在實際應用程式中工作時,您可能會遇到可能出現的模式演化最後從文件中新增或刪除欄位。我們來看看如何在這個過程中進行這些修改MongoDB資料庫。 update() 操作可以在文件級別使用,這有助於更新單個檔案在一個集合中文件或一組文件。 接下來,讓我們看看如何向文件中新增新欄位。為了向文件中新增欄位,使用使用$set操作符和多選項的update()命令。 如果使用$set的欄位名,這是不存在的,那麼該欄位將被新增到文件中。下面的命令將把欄位公司新增到所有文件:
對使用者的集合發出find命令,您將發現新增到所有文件的新欄位
如果您使用文件中已有的欄位執行update()命令,它將更新該欄位價值;但是,如果該欄位沒有出現在文件中,那麼該欄位將被新增到文件中。 接下來,您將看到如何使用$unset操作符使用相同的update()命令來刪除欄位從文件。 以下命令將從所有文件中刪除欄位公司:
可以通過向用戶集合發出find()命令來檢查這一點。你可以看到公司欄位已從檔案中刪除。
    1.6 Delete 要刪除集合中的文件,請使用remove()方法。如果你指定了一個選擇條件符合標準的檔案將被刪除。如果沒有指定任何標準,那麼所有的文件將被刪除。 下面的命令將刪除性別='M':
可以通過向用戶發出find()命令來驗證這一點:
沒有返回的文件。 以下命令將刪除所有文件:

如您所見,沒有返回任何文件。 最後,如果您想要刪除集合,下面的命令將刪除集合:
為了驗證是否刪除了集合,發出show集合命令。
正如您所看到的,集合名稱沒有顯示,確認已經刪除了集合從資料庫中。在介紹了基本的建立、更新和刪除操作之後,下一節將向您展示如何執行讀操作。 About Me:     Email:[email protected]有java與hadoop相關的技術問題,可以發私信與我交流。