AdSense

網頁

2019/8/9

MongoDB 使用mongo shell建立資料庫

使用mongo shell在MongoDB建立新的資料庫的方法如下。

本範例的MongoDB版本為version 4.0.11。


mongo shell連線至MongoDB後,輸入use <db>即可切換到指定的資料庫,如果該資料庫不存在,MongoDB變會在新增一筆資料後自動建立這個資料庫。

例如目前的MongoDB中並沒有mydb1這個資料庫。先用show dbs指令來查看目前MongoDB有哪些資料庫。

> show dbs
admin   0.000GB
config  0.000GB
local   0.000GB

可以看到目前只有MongoDB預設的adminconfiglocal資料庫。


執行以下指令則MongoDB變會並切換至mydb1,此時只是切換到這不存在的資料庫而已。

> use mydb1
switched to db mydb1

使用db指令來查看目前使用的資料庫。

> db
mydb1

接著使用db.collection.insertOne( { field : value } )指令新增一筆資料。

collection為要新增的集合名稱,這邊命名為myCollection1field為集合中的一筆資料名稱,這邊命名為xvaluefield的值。

> db.myCollection1.insertOne( { x : 1 } )
{
        "acknowledged" : true,
        "insertedId" : ObjectId("5d4d78238ef1d4239e23e5b0")
}

新增成功會出現上面訊息,為db.collection.insertOne()的回傳結果。


然後使用show dbs指令來查看目前MongoDB有哪些資料庫。

> show dbs
admin   0.000GB
config  0.000GB
local   0.000GB
mydb1   0.000GB

從上面可以看到多了一個mydb1資料庫。


也就是說MongoDB並沒有類似MySQL的CREATE DATABASE <dbname>的指令,而是直接用use <db>先切換到一個資料庫名稱,然後在新增資料時自動建立。


接著查詢看看,使用show collections查詢目前所在資料庫下的所有集合。

> show collections
myCollection1

可以看到剛新增的myCollection1集合。


使用db.collection.find()查詢集合下的所有資料。

> db.myCollection1.find()
{ "_id" : ObjectId("5d4d78238ef1d4239e23e5b0"), "x" : 1 }

除了mongo shell外,也可使用Robo 3T這套圖形化管理工具在MongoDB建立新的資料庫


參考:

3 則留言:

IT Lawyer 提到...
作者已經移除這則留言。
IT Lawyer 提到...

也就是說MongoDB並沒有類似MySQL的CREATE DATABASE 的指令,而是直接用user 先切換到一個資料庫名稱,然後在新增資料時自動建立。


是use db , 不是user db喔

Matt 提到...

感謝IT Lawyer的糾正

AdSense