日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

MongoDB Shell工具:mongosh的使用

發布時間:2023/12/10 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MongoDB Shell工具:mongosh的使用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
MongoDB Shell工具:mongosh的使用
jcLee 的 CSDN 博客
郵箱 :291148484@163.com
CSDN 主頁:https://blog.csdn.net/qq_28550263?spm=1001.2101.3001.5343
本文地址:https://blog.csdn.net/qq_28550263/article/details/119892582

目 錄

1. 使用前的準備

  • 安裝 mongosh
  • 啟動 MongoDB

2. 使用mongosh連接實例

3. 創建、讀取、更新和刪除(CURD)操作

  • 3.1 數據庫的創建

    • 3.1.1 選擇和創建數據庫
  • 3.2 數據庫的刪除

  • 3.3 集合操作

    • 3.3.1 集合的創建
    • 3.3.2 查看所有集合
    • 3.3.3 集合的刪除
  • 3.4 文檔操作

  • 3.4.1 文檔的插入

  • 3.4.2 從集合中刪除文檔

  • 3.4.3 修改集合中的文檔


1. 使用前的準備

1.1 安裝 mongosh

MongoDB的Shell工具mongosh是一個全功能的JavaScript和Node.js的14.x REPL與MongoDB的部署交互環境。我們通過它可以直接對數據庫進行查詢和操作。這個工具是需要在安裝玩MongoDB后單獨安裝的,Windows平臺對應的mongosh的下載地址為:

  • https://downloads.mongodb.com/compass/mongosh-1.0.5-x64.msi

當然你也可以自己在MongoDB下載頁面尋找對應的版本進行下載:

  • https://www.mongodb.com/try/download/shell?jmp=docs
  • https://docs.mongodb.com/mongodb-shell/install/#std-label-mdb-shell-install

下載完成后,進行安裝,基本只要點擊下一步即可:


1.2 啟動 MongoDB

因為之后我們使用mongosh來連接MongoDB實例,因此先要對 MongoDB進行啟動。啟動主要有兩種方式。

(1)在bin目錄中直接使用如下命令啟動:
找到你的安裝目錄下的bin目錄,如果你還沒有將該目錄添加到Path環境變量下,那么你需要通過命令行進入到該目錄后才能執行相關命令。

命令如下:

mongod --dbpath="D:\Program Files\MongoDB\Server\5.0\data"

注意中間不要有空格。右面--dbpath選項所指定的就是你的數據庫存放目錄。
(2)通過配置文件進行啟動:
有兩種寫法,一種是 -f選項加路徑,如

mongod -f ../config/mongod.conf

另外一種寫法是 --config選項加路徑,如

mongod --config ../config/mongod.conf

配置文件的格式如:

systemLog:destination: file#The path of the log to which mongod or mongos should send all diagnostic logging informationpath: "D:/Program Files/MongoDB/Server/5.0/log/mongo.log"logAppend: true storage:journal:enabled: true# the directory where the mongod instance stores its data.Default Value is "/data/db".dbPath: D:\Program Files\MongoDB\Server\5.0\data net:bindIp: 127.0.0.1

2. 使用mongosh連接實例

一般的鏈接命令格式為:

mongosh "mongodb://hostname:port"

本地 MongoDB 實例使用 默認端口 27017 ,在mongosh沒有任何命令行選項的情況下可以直接簡寫為一下命令進行連接:

mongosh

這相當于使用命令:mongosh "mongodb://localhost:27017"
一下時一次連接到本地實例的截圖:

3. 創建、讀取、更新和刪除(CURD)操作

3.1 數據庫的創建

創建或插入操作將新文檔添加到集合中。如果該集合不存在,則創建操作也會創建該集合。可以在一次操作中插入單個文檔或多個文檔。

mongo

3.1.1 選擇和創建數據庫

use 數據庫名

注意:使用該命令的時候,如果有數據庫名稱指定的數據庫則會使用該數據庫,否則將自動創建名稱為所指定名稱的數據庫。
數據庫名需要滿足一定的規則:

  • 它可以是任意滿足UTF-8編碼的字符串;
  • 不允許是空字符串;
  • 不允許含有’ '(空格)、.(點)、$、/、\、和\0(空字符串);
  • 應采用全小寫字符,并且布草過64字節;
  • 不能使用一些暴力與的數據庫名:
    • admin: 這個相當于具有root權限的數據庫,要是將一個用戶添加到該數據庫,則用戶將自動地繼承所有數據庫的權限。某些特定的服務器端命令也只能從這個數據庫運行,比如列出所有的數據庫或者關閉服務器等等;
    • local: 該數據永遠不會被復制,可以用來存儲限于本地單臺服務器的任意集合;
    • config: 當Mongo用于分片設置時,config數據庫再內部使用,用于保存分片的相關信息。

也可以查看當前所使用的數據庫:

db

查看所有的數據庫:

show dbs

(或者show databases)

執行效果如圖:

在這個截圖中看到,并沒有顯示出我們使用use命令所創建的數據庫“mydb”,是因為我們還沒有把它存儲在硬盤中,但這個新的數據庫已經可以在內存中建立了。

其中MondoDB中所默認的數據庫名為test,也就是說如果你沒有指定過其他名稱的數據庫,所使用的集合將全部存放在名為test的默認數據庫中。

在創建數據庫后集合不會馬上創建,只有在插入了內容后才會創建集合。這里的集合就相當于MySQL等數據庫中的數據表。也就是說創建集合后要再插入一個文檔(相當于MySQL中的記錄),集合才會創建。

3.2 數據庫的刪除

刪除操作從集合中刪除現有文檔。您可以在一次操作中刪除單個文檔或多個文檔。可以指定用于標識要刪除的文檔的條件或過濾器。這些過濾器使用與讀取操作相同的語法。
MongoDB刪除數據庫shell的格式為:

db.dropDatabase()

這里的Shell命令與JavaScript中的函數類似,以該刪除函數為例,db是我們所use的一個數據庫對象,執行的是該對象的dropDatabase()函數(方法)。不過需要注意,mongosh方法終究不是Node.js或者某一其他編程語言中的方法或函數。現在我們可以測試刪除剛剛所創建的數據庫:

這個也只是對硬盤中的數據庫的操作,實際上現在我們所“use”的還是mydb。

3.3 集合操作

3.3.1 集合的創建

這里的集合就相當于MySQL等關系型數據庫中的數據表,集合是“文檔”的容器,而文檔則相當于MySQL等關系型數據庫中的“記錄”,也就是所存儲的一條數據。為當前所使用的數據庫“db”顯示創建一個集合的格式如下:

db.createCollection(name)
  • name 該參數是要為當前所使用的數據庫db創建的集合的名稱,需要使用引號表示名稱的字符串,如:db.createCollection("mydb")

實際上“集合”還可以被隱式地創建。當向一個集合中插入一個文檔時,若被插入文檔的集合不存在,則將自動創建該集合

3.3.2 查看所有集合

其命令如下:

show collections

如圖:

3.3.3 集合的刪除

刪除集合的格式為:

db.collection.drop()

或者

db.集合名.drop()

3.4 文檔操作

3.4.1 文檔的插入

(1)插入單個文檔

db.collection.insertOne()

例如:

db.students.insertOne( { name: "小明", age: 16 } );

以下是shell執行的截圖:

可以看到mongosh返回了一段腳本執行的信息,即:

{"acknowledged" : true,"insertedId" : ObjectId("6125ae05d3b72d0dd071b02f") }

說明我們執行成功了。使用可視化工具也可以查看到在當前使用的名為test數據庫下,名為student的集合下添加了一個文檔:

(2)插入多個文檔

我們也可以一次性插入多個文檔:

db.collection.insertMany() ```例如: ```jsdb.techers.insertMany( [ { name: "JackMa", age: 57 }, { name: "Michael Yu", age: 59 } ] );

3.4.2 從集合中刪除文檔

MongoDB中的刪除操作有兩種,一個是db.collection.deleteOne(),用于從集合中刪除單個文檔;另一個是db.collection.deleteMany(),用于按照某種規則刪除多個文檔。他們都是針對單個集合的刪除

(1)db.collection.deleteOne()

格式為:

db.collection.deleteOne(<filter>,{writeConcern: <document>,collation: <document>,hint: <document|string> // Available starting in MongoDB 4.4} )

其中:

  • filter :過濾器,用于指定刪除條件。相當于SQL中使用where語句。db.collection.deleteOne()方法將 刪除與過濾器匹配的第一個文檔。如果需要精確刪除某一條文檔,應該使用屬于唯一索引一部分的字段,比如_id。

  • writeConcern(可選):它關注描述了從 MongoDB 請求對獨立mongod或副本集或分片集群的寫入操作的確認級別。

  • collation(可選):它指定了用于操作的排序規則。排序規則允許用戶 為字符串比較指定特定于語言的規則,例如字母和重音符號的規則。

  • hint(可選):hint指定用于支持查詢謂詞的 索引 的文檔或字符串。該選項可以采用索引規范文檔或索引名稱字符串。如果指定的索引不存在,則操作會出錯。

    索引 是一種特殊的數據結構,它以易于遍歷的形式存儲集合數據集的一小部分,用于支持在 MongoDB 中高效執行查詢。

    • 如果沒有索引則MongoDB 必須執行集合掃描,即掃描集合中的每個文檔,以選擇那些與查詢語句匹配的文檔。
    • 如果查詢存在合適的索引,MongoDB 可以使用該索引來限制它必須檢查的文檔數量。

    (MongoDB 索引使用 B 樹數據結構)

> db test > db.students.insertMany([ ... { "_id": 1, "name":"三張", "age":12, "chinaese":90, "math" : 67, "english" : 59 }, ... { "_id": 2, "name":"李四", "age":13, "chinaese":83, "math" : 69, "english" : 70 }, ... { "_id": 3, "name":"王五", "age":15, "chinaese":97, "math" : 73, "english" : 57 }, ... { "_id": 4, "name":"趙六", "age":11, "chinaese":86, "math" : 82, "english" : 70 }, ... { "_id": 5, "name":"錢七", "age":15, "chinaese":99, "math" : 61, "english" : 60 }, ... { "_id": 6, "name":"吳八", "age":14, "chinaese":91, "math" : 67, "english" : 86 }]) { "acknowledged" : true, "insertedIds" : [ 1, 2, 3, 4, 5, 6 ] }

建立索引:

db.students.createIndex( { chinaese: 1, _id: -1 } ) {"numIndexesBefore" : 1,"numIndexesAfter" : 2,"createdCollectionAutomatically" : false,"ok" : 1 }

刪除操作使用一個索引:

(2)db.collection.deleteMany()

3.4.3 修改集合中的文檔

暫無內容

總結

以上是生活随笔為你收集整理的MongoDB Shell工具:mongosh的使用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。