enterprise 需要錢,community 不用錢
下載解壓安裝,安裝過程會問要不要再安裝 compass,這個是 gui 工具,看要不要安裝或者安裝自己熟悉的 gui 工具,mongodb://127.0.0.1:27017 可以連自己的,但下面的 mongod 要執行成功
完成後,看要不要設定環境變數
啟動用 mongod,但會出現錯誤,說路徑要有 c:\data\db,自行創建後,啟動成功
或者用參數 mongod --dbpath 資料夾路徑名,這樣就可以使用自己喜歡的資料夾
port 預設是 27017,想改可用 mongod --port 2222,這要就可以改 port
然後再開一個視窗,打上 mongo 或 mongo --port 27017 即可連線,出現「>」表示連現成功
database 資料庫
collection 集合
document 文件
資料庫和集合不用手動創建,直接 use 名稱即可,在新增文件時,會自動新增資料庫和文件
show dbs 或 shw databases 看有什麼資料庫
db 看目前在哪個資料庫
show collections 或 show tables看當前資料庫有什麼集合
新增文件 db.<collection>.insertOne insertMany
db.zoo.insertOne(name:"monkey"); zoo 是這行才開始新增的 collection,如果資料庫沒新增也會一併新增,insertOne 裡的 bson 就是 document
其他 deleteOne、deleteMany、updateOne、updateMany、find 都看官方文件即可
※NoSQLBooster for MongoDB
這也是個 IDE
projection 是投影的意思,在這裡表示哪些欄位要顯示,1顯示,0不顯示
另一種方法是將 document 寫在 find 的第二個參數裡,這樣就不用寫 projection 了
※索引
預設 _id 是 PK,就已經是索引了
db.<collection>.createIndex(
{ field1: 1 } ,
{ field2: -1 }
);
對 field1 做正序,對 field2 做倒序
查看 index: db.<collection>.getIndexes();
如圖,表示有兩個索引,key 為索引的欄位名稱,第二個是我建的複合索引
查看執行計畫,官方文檔
db.<collection>.explain("queryPlanner");
裡面可以寫三種值 queryPlanner、executionStats、allPlansExecution
看結果的 winningPlan,有個 stage,如下
stage 包括五種
COLLSCAN:掃描 collection,全表掃描的意思
IXSCAN:掃描 index,表示吃到索引了
FETCH:用於檢索文件
SHARD_MERGE:用於合併分片的結果
SHARDING_FILTER:用於從分片中過濾掉孤立文件
沒有留言:
張貼留言