1. 程式人生 > 其它 >帶你詳細瞭解mongodb資料庫

帶你詳細瞭解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