帶你詳細瞭解mongodb資料庫
啟動MongoDB
• 在C盤根目錄下建立data資料夾,在data下 建立db資料夾
• 開啟CMD命令列視窗,輸入mongod
• 32位系統第一次啟動:
– mongod --storageEngine=mmapv1
• 出現如下輸出
指定埠和路徑
• 在控制檯啟動MongoDB – mongod --dbpath 路徑 --port 埠號
– 示例:
• mongod --dbpath C:\Users\lilichao\Desktop\mongo\data\db --port 123
• 注意:開啟的命令列視窗不能關閉
配置mongo的windows服務
• 在mongo安裝目錄的server下3.x目錄下建立 mongod.cfg檔案,並新增如下內容
systemLog:
destination: file
path: c:\data\log\mongod.log
storage:
dbPath: c:\data\db
• 管理員模式開啟控制檯,並輸入如下指令
sc.exe create MongoDB binPath= "\"mongo bin路徑\mongod.exe\" --service -- config=\"mongo路徑\mongod.cfg\"" DisplayName= "MongoDB" start= "auto"
• 刪除服務
sc delete MongoDB
關閉MongoDB
• 開啟新的命令列視窗
• 登入伺服器 – mongo
• 切換管理員使用者 – admin
• 關閉資料庫 – db.shutdownServer()
Mongo Shell
• 登入mongo shell
– mongo
• 命令
– help語法幫助
– use 更改當前操作的資料庫
– show根據引數顯示列表
• dbs 顯示資料庫列表
• collections 顯示當前資料庫的集合
• profile 顯示時間超過1毫秒的system.profile條 目
• log[name] 顯示登入記憶的最後一段
– exit 退出資料庫
– load(script) 載入js檔案db.auth(username , password) 在當前資料庫做身份驗證
三個概念
• 資料庫(database) – 資料庫是一個倉庫,在倉庫中可以存放集合。
• 集合(collection) – 集合類似於陣列,在集合中可以存放文件。
• 文件(document) – 文件資料庫中的最小單位,我們儲存和操作的 內容都是文件。
基本概念
• 文件(document)
– 類似於JS中的物件,在MongoDB中每一條數 據都是一個文件
• 集合(collection)
– 集合就是一組文件,也就是集合是用來存放文 檔的
– 集合中儲存的文件可以是各種各樣的,沒有格 式要求
• 多個文件組成集合,多個集合組成資料庫
建立資料庫
• use 資料庫名
– 使用use時,如果資料庫存在則會進入到相應的數 據庫,如果不存在則會自動建立
– 一旦進入資料庫,則可以使用db來引用當前庫
• db.collection.insert(文件)
– 向集合中插入文件,如果集合不存在則建立
• db.createCollection()
– 建立一個新的集合
• db.collection.drop()
– 刪除集合
文件的增刪改查
• 插入文件 – db.collection.insert ()
• 查詢文件 – db.collection.find ()
• 刪除文件 – db.collection.remove()
• 修改文件 – db.collection.update()
新增文件
• db.collection.insert (文件物件)
– insert()可以用於向集合中新增一個或多個文件, 可以傳遞一個物件,或一個數組。
– 可以將物件或陣列中的物件新增進集合中
– 新增時如果集合或資料庫不存在,會自動建立
– 插入的文件物件會預設新增_id屬性,這個屬性 對應一個唯一的id,是文件的唯一標識
刪除文件
• db.collection.remove()
– remove()可以用來移除指定文件物件
– 方法接收一個查詢文件作為引數,只有符合條 件的文件才會被刪除 – 刪除資料是永久的,不能撤銷
• db.collection.drop()
– 刪除集合
修改文件
• db.collection.update()
• 替換文件 – 可以在update()中傳遞兩個引數,一個是查詢 文件,一個是新的文件,這樣符和條件的文件 將會被新文件所替換
– update()的第三個引數,用來指定是否使用 upsert,預設為false
– update()的第四個引數,用來指定是否同時修 改多個文件,預設為false
修改器
• 使用update會將整個文件替換,但是大部 分情況下我們是不需要這麼做的
• 如果只需要對文件中的一部分進行更新時, 可以使用更新修改器來進行。
• 我們將要學習以下幾個修改器 – $set、 $unset 、$inc、$push、$addToSet
$set、$unset
• $set用來指定一個欄位的值,如果這個字 段不存在,則建立它。
• 語法: – db.test_coll.update(查詢物件, {$set:更新物件});
• $unset可以用來刪除文件中一個不需要的欄位, 用法和set類似。
$inc
• $inc用來增加已有鍵的值,或者該鍵不存 在那就建立一個
• $inc只能用於Number型別的值
查詢文件
• find()、findOne()
– MongoDB使用find()來對文件進行查詢
– find()需要一個查詢文件作為引數,如果不傳 該引數,則會返回集合中的所有元素。
– 可以將查詢條件以鍵值對的形式新增到查詢文 檔中
– 查詢條件
• $lt、$lte、$gt、$gte、$ne、$or、$in、$nin、 $not、$exists、$and