使用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預設的admin
,config
,local
資料庫。
執行以下指令則MongoDB變會並切換至mydb1
,此時只是切換到這不存在的資料庫而已。
> use mydb1
switched to db mydb1
使用db
指令來查看目前使用的資料庫。
> db
mydb1
接著使用db.collection.insertOne( { field : value } )
指令新增一筆資料。
collection
為要新增的集合名稱,這邊命名為myCollection1
;field
為集合中的一筆資料名稱,這邊命名為x
;value
為field
的值。
> 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建立新的資料庫。
參考:
作者已經移除這則留言。
回覆刪除也就是說MongoDB並沒有類似MySQL的CREATE DATABASE 的指令,而是直接用user 先切換到一個資料庫名稱,然後在新增資料時自動建立。
回覆刪除是use db , 不是user db喔
感謝IT Lawyer的糾正
回覆刪除