日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

MongoDB (芒果)安装说明创建与插入数据

發布時間:2023/12/10 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MongoDB (芒果)安装说明创建与插入数据 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

MongoDB (芒果)
一. 基礎概念

  • 數據: 能夠輸入到計算機中并被識別處理的信息集合
  • 數據結構: 研究一個數據集合中,數據之間關系的學科
  • 數據庫: 按照數據結構,存儲管理數據的倉庫。數據倉庫是在數據庫管理系統管理控制下在一定介質中構建的。
  • 數據管理系統 :數據庫管理軟件,用于維護建立數據庫
  • 數據庫系統:是數據庫和數據庫管理系統等開發工具的集合
  • 二. 關系型數據庫 OR 非關系型數據庫

  • 關系型數據庫 :采用關系模型(二維表)來組織數據結構的數據庫

    【1】常見關系型數據庫:Oracle DB2 SQLServer MySql SQLite

    【2】優缺點

    優點: * 邏輯清晰,容易理解,結構類似常見的表格* 使用sql語句操作,技術成熟,使用方便* 數據一致性高* 關系型數據庫比較成熟,復雜的數據操作較多

    缺點: * 每次操作需要專門sql語句解析,降低了速度
    * 關系型數據庫內部往往進行加鎖處理,也影響了處理速度
    * 不能很好的處理海量數據并發請求的需要,讀寫能力差

  • 非關系型數據庫 (NoSql–》Not only sql)

    【1】 常見非關系型數據庫

  • 鍵值型數據庫: Redis
  • 列存儲數據庫: HBase
  • 文檔型數據庫: Mongodb CouchDB
  • 圖形數據庫: Graph
  • 【2】 優缺點

    優點: * 讀寫速度快,可以更好應對并發請求
    * 使用靈活,容易擴展

    缺點: * 沒有sql那樣同一的成熟的語句操作
    * 技術成熟度較差,缺少復雜的數據操作

    【3】 應用場景

  • 對數據的格式要求比較靈活
  • 對數據處理速度特別是并發情況下處理速度讀要求較高
  • 某些特定場景:做緩存等
  • 三. MongoDB數據庫

  • 特點

    【1】 非關系型數據庫,是文檔型數據庫
    【2】 開源數據庫,使用廣泛,更新較快
    【3】 由c++編寫的數據庫管理系統
    【4】 支持豐富的存儲類型和數據操作
    【5】 方便擴展,部署,眾多語言提供了操作接口

  • MongoDB安裝

    • Linux : sudo apt-get install mongodb

    • Mac OS : brew install mongodb

    • Windows :www.mongodb.com 下載軟件安裝

    Linux 安裝目錄

    安裝位置:/var/lib/mongodb....配置文件:/etc/mongodb.conf命令集:/usr/bin

    cookie :
    環境變量 : 系統指定的查找路徑。當加載一個文件時如果當前目錄找不到會自動從環境變量目錄查找

  • 四. MongoDB 命令

  • mongod 配置mongodb基本信息

    【1】 mongod -h 查看幫助信息
    【2】 mongod --port 8888 設置端口號
    【3】 mongod --dbpath [dir] 設置數據庫存儲路徑

  • mongo 進入數據庫 mongoshell 界面

    【1】 mongo 進入mongoshell界面,即可操作數據庫
    【2】 quit() crtl-c 退出界面

  • 五. MongoDB 數據庫數據結構

  • 數據組織結構: 鍵值對 --> 文檔 --> 集合 --> 數據庫

    e.g.:

  • IDNAMEAGE
    1Lily17
    2Lucy18
    {"_id":1,"NAME":"Lily","AGE":17},{"_id":2,"NAME":"Lucy","AGE":18}
  • 概念對比
  • mysqlmongodb含義
    databasedatabase數據庫
    tablecollection表/集合
    culumnfield字段/域
    rowdocument記錄/文檔
    indexindex索引

    六. 數據庫操作

  • 創建數據庫: use [database]

    e.g. 創建一個stu數據庫
    use stu

    • use實際為選擇使用哪個數據庫,當這個數據庫不存在時會自動創建

    • 使用use創建數據庫不會立即創建,而是需要插入數據時才真正被創建

  • 查看系統中數據庫: show dbs

  • 數據庫命名規則

    【1】 使用utf-8字符
    【2】 不能含有: 空格 . / \ ‘\0’
    【3】 不超過64字節
    【4】 不要已有數據庫重名

  • 全局變量db : 代表當前正在使用的數據庫

    • 如果不選擇任何數據庫則 db表示‘test’
  • 刪除數據庫: db.dropDatabase()

  • 數據庫的備份和恢復

    【1】 數據庫備份命令

    mongodump -h [host] -d [database] -o [path]e.g. 備份當前主機中stu數據庫到bak目錄下mongodump -h localhost -d stu -o ./bak

    【2】 數據庫恢復

    mongorestore -h [host:port] -d [db] [bak_dir]e.g. 將stu數據庫恢復到當前主機中student數據庫下mongorestore -h 127.0.0.1:27017 -d student bak/stu
  • 數據庫監控

  • 查看數據庫運行狀態: mongostat

    insertqueryupdatedelete每秒增查改刪的次數

    command : 每秒mongo命令的執行次數
    flushes : 每秒的磁盤刷新頻率
    vsize res:使用虛擬內容和物理內存情況
    time:時間

  • 監控數據庫中數據讀寫情況: mongotop

    ns數據集合
    total每秒讀寫時長
    read每秒讀時長
    write每秒寫時長
  • 七. 集合操作

  • 創建集合

    【1】 db.createCollection(collectionName)

    e.g. 創建集合class1
    db.createCollection(‘class1’)

    【2】 插入數據時,如果指定集合不存在會自動創建

    e.g. 如果class2不存在則自動創建db.class2.insert({'name':'寶強','age':32})

    【3】 查看數據庫中集合: show collections

    【4】 集合命名規則:

  • 使用utf-8字符
  • 不能含有’\0’字符
  • 不要以system.開頭,這是系統集合默認開頭
  • 不要和關鍵字重名
  • 刪除集合: db.collection.drop()

    e.g. 刪除class集合
    db.class.drop()

  • 集合的重命名 : db.collection.renameCollection(newname)

    e.g. 將集合class重命名為class0
    db.class.renameCollection(‘class0’)

  • 八. 文檔

  • 什么是文檔?

    • 文檔是mongodb數據庫中基本的數據組織單元
    • 文檔由多個鍵值對構成,每個鍵值對表達一個數據項
    • mongodb中文檔數據實際為bson數據格式
  • 文檔鍵值對

    特點:

    • 文檔中鍵值對是無序的
    • 文檔中的鍵不能夠重復
    • 文檔通過鍵取值
    • 文檔的鍵為utf-8格式,不能有\0

    鍵 : 表示文檔的數據域,即數據的信息含義

    值 : 即數據庫中存儲的數據

    數據類型支持 : 見 圖 mongo_type

    String 字符串
    Int 整型
    Double 浮點型
    Boolean 布爾類型 true false
    ObjectId ID對象

    • 在插入數據時,如果不自己指定_id域則會自動添加這個域,值為ObjectId數據,用于作為文檔主鍵

    e.g.:
    “_id”:ObjectId(“5c95abfcc8c4cf7482cfbadd”)

  • 集合中的文檔設計

    【1】一個集合中的文檔盡量表達相同的數據內容
    【2】集合中文檔的層次嵌套不宜特別多,如果層次過多時考慮可否拆分為多個集合
    【3】集合中文檔相互獨立,可以根據實際情況選擇不同的域結構

  • 九. 數據基本操作

  • 插入文檔

    【1】 插入單個文檔

    命令: db.collection.insertOne(doc)

    e.g. 向class0中插入一個文檔
    db.class0.insertOne({‘name’:‘Lucy’,age:18,sex:‘w’})

    • 數據操作時,鍵可以不加引號,默認為utf-8字符串
    • 可以自己添加_id域,但是_id域的值不能重復

    【2】 插入多個文檔

    命令:db.collection.insertMany([doc,...])e.g. 同時插入多條文檔 db.class0.insertMany([{name:'Abby',age:18,sex:'w'},{name:'Tom',age:17,sex:'m'}])

    【3】 一個綜合函數

    命令: db.collection.insert()說明:綜合insertOne,insertMany功能。官方不推薦

    【4】 save保存文檔

    命令: db.collection.save()說明: 使用方法同insert(),但是當_id重復時會覆蓋原有文檔
  • 補充 :

    獲取集合對象方法: db.getCollection(collectionName)

    作業 :

  • 能夠回答關系型數據庫和非關系型數據庫的區別
  • 熟練掌握mongo數據庫,集合的創建和插入文檔
  • 將mysql中"銀行"數據庫結構使用mongodb創建,并插入對應文檔。
  • 總結

    以上是生活随笔為你收集整理的MongoDB (芒果)安装说明创建与插入数据的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。