1. 程式人生 > >mongodb 安裝+操作命令 筆記

mongodb 安裝+操作命令 筆記

mongodb筆記

安裝

Mac

brew install mongodb

Ubuntu

# 安裝
sudo apt-get install mongodb

啟動和關閉

啟動

  1. 服務啟動(sudo apt-get install mongodb安裝可以)
sudo service mongodb start
  1. 直接啟動(開發階段使用這種方案啟動)
sudo mongod

【注意事項】:

  1. 資料庫檔案找到引發的錯誤 Data directory /data/db not found., terminating
sudo mkdir /data
sudo mkdir /data/db
  1. 許可權不夠新增sudo
  2. 可能虛擬機器的硬碟大小太小了,小到mongodb不允許你啟動
sudo mongod --smallfiles

啟動引數

--dbpath 資料庫檔案路徑 預設/data/db --port 設定監聽埠 預設27017 --bind_ip 允許訪問的IP地址 預設127.0.0.1 => 0.0.0.0表示允許所有機器遠端訪問,但是【切忌注意】:上線版本千萬別這麼設定 --auth 啟動驗證模式(後續會講) --config指定配置檔案,把所有的相關配置都放到配置檔案中

關閉

  1. 服務關閉
sudo service mongodb stop
  1. 直接關閉

# 1. ctrl + C
# 2.
登入到mongodb中退出 use admin db.shutdownServer() # 3. kill 程序(不推薦使用,特別是線上的資料庫)

操作資料庫

利用客戶端進行登入

# 伺服器啟動,
sudo mongod
# 進行客戶端登入
mongo

資料庫操作

列出資料庫

    show dbs/databases

建立資料庫

use 資料庫
// 插入資料即可建立

刪除資料庫

use 資料庫
db.dropDatabase()

資料表操作(table => collection)

顯示資料庫中的集合列表

show collections

建立集合

// 1. 插入資料即建立
db.
集合名稱.insert({"a":"b"}) // 2. 建立集合不建立資料 db.createCollection('mycoll')

刪除集合

db.集合名稱.drop()

集合重新命名

db.集合名稱.renameCollection('新的集合名稱')

資料庫表中資料操作(collection中資料操作)

// mongodb內部的指令碼是一套 類似於語法 javascript引擎
// 單條資料插入
db.mycoll.insert(
    {
        "a":5,
        "b":"abc",
        "c":['q','w','e'],
        "d":{
            "h":"u"
        }
    }
)
// 多條資料插入
data = [
    {"x":"b"},
    {"y":"d"}
]
db.集合名.insertMany(data)

【注意】,預設更新是整體更新,區域性更新使用$set,預設更新只更新一條,如果要批量更新就新增第三個引數{multi:true}

// 整體更新
db.stu.update(
    // 更新條件
    {
        "hometown":"蒙古"
    },
    // 更新內容
    {
        "name":"江蘇"
    }
)
// 區域性更新
db.stu.update(
    // 更新條件
    {
        "hometown":"桃花島"
    },
    // 更新內容
    {
        $set:{
            "name":"鹽城"
        }
    }
)
// 批量更新
db.stu.update(
    // 更新條件
    {
        "age":18
    },
    // 更新內容
    {
        $set:{
            "name":"py"
        }
    },
    // 更新方式
    {
        multi:true
    }
)

// 通過刪除條件進行刪除
db.stu.remove(
    // 刪除條件
    {
        age:18
    },
    // 刪除方式
    {
        justOne:true
    }
)
// 清空資料
db.stu.remove({})

儲存

按照_id欄位進行判定,如果存在就進行更新,如果不存在就插入

db.stu.save(
    {
        "_id":6,
        "a":5,
        "b":7
    }
)

// 基本查詢
db.集合名.find()