1. 程式人生 > >MongoDB數據庫—基礎語法

MongoDB數據庫—基礎語法

fin 類型 rip 環境變量 並發 目錄 表達式 adf 端口

一、MongoDB 數據庫的特點及安裝
  • MongoDB 數據庫的特點
    • 面向文檔,模式自由
    • json數據模式(bson)(可以初略理解為字典)
    • 多級引索
    • 高可用復制集
    • 水平擴展
    • 跨平臺、多種語言接口
    • 弱事務類型
    • 大數據、高並發、弱事務的web2.0互聯網應用。
    • 優點:弱一致性,文檔格式存儲方式,內置gridFS(分布式文件系統)
    • 缺點:不支持事務,空間占用大
  • MongoDB 數據庫的安裝
    • 安裝:一路點擊next,finish
    • 配置環境變量:將bin目錄配置到環境變量中
    • 執行:cmd>mongod –v?? ?????(測試環境變量是否配置好)
    • 新建如下文件夾(文件路徑如下:)
    • 1 新建data文件夾
    • 2 新建 log 文件夾
    • 3 新建 mongo.conf 文件
    • 4 新建 mongo.cfg 文件(log文件夾下)
      文件路徑:
      Server
      |----3.7
              |----bin
              |----data
              |----log
                      |----mongo.cfg
              |----mongo.conf
    • 編輯 mongo.conf 文件(添加如下內容)
dbpath=C:\Program Files\MongoDB\Server\3.6\data ????????????  #數據庫路徑 軟件安裝目錄(我的是默認目錄)  
??? logpath=C:\Program Files\MongoDB\Server\3.6\log\mongo.cfg ????#日誌輸出文件路徑   
??? logappend=true ??#錯誤日誌采用追加模式    
????journal=true ?????  #啟用日誌文件,默認啟用    
????quiet=true ???????  ?#這個選項可以過濾掉一些無用的日誌信息,若需要調試使用請設置為false    
????port=27017 ???????#端口號 默認為27017
  • 安裝MongoDB服務:(cmd以管理員身份執行)
    mongod --config "C:\Program Files\MongoDB\Server\3.6\mongo.conf" --install --serviceName "MongoDB"
    啟動服務:cmd 管理員方式啟動>net start MongoDB

二、基本語法:

MongoDB常見數據類型
String:           最常用的儲存的數據類型。MongoDB中字符串必須是utf-8。
Integer:         用來儲存數值。(32位/64位)
Boolean:       儲存布爾值(true/false)
Double:           儲存浮點值。
Min/Max keys:用來對Bson元素最低最高值比較。
Arrays:           使用此類型的數組/列表/多個值儲存到一個鍵
Timestamp:    時間戳。(方便記錄文件已被修改/添加)

Object:          用於嵌入式文件。
Null:              儲存null值。
symbol:         用於字符串相同,但它通常保留給特定符號類型的語言使用。
Date:             儲存當前日期/時間的Unix時間格式。可以指定自己的日期和時間/日期和年月日到創建對象。
ObjectID:      用於儲存文檔的ID。
Binary data :    儲存二進制數據。
Code:            用於儲存到文檔中的Javascript代碼。
regular expression:    用於儲存正則表達式
數據庫增刪改查
  • 創建庫 / 刪除庫 / 創建集合 / 刪除集合
創建庫:use db_name?????? #使用/創建數據庫(若不存在則創建該數據庫)
             db???????????????????????   #檢查當前選擇的數據庫
             show dbs????????????? #顯示當前有哪些數據庫
             show tables/show collections ?? ?#查看數據表

刪除庫 :? db.dropDatabase()?? ?#這將刪除選定的數據庫。如果沒有選擇任何數據庫,默認刪除Test數據庫。

創建集合:
        在mongodb裏面沒有表的概念,集合(collections)就相當於傳統數據庫的表。
        語法:db.createCollection(name,option)?? ? 

        演示:
        >use test                                              # 進入該數據庫
        switched to db test
        >db.createCollection("mycollection")    # 創建myCollection 集合
        {"ok",1}
        >show collections                                 # 檢查創建集合的命令
        mycollection
        system.indexes 

        刪除集合
        ?>use mydb                                            #檢查可用的集合在數據庫 mydb
        switched to db mydb
        >show collections                                  #檢查集合
                mycol
                mycollection
        >db.mycollection.drop()                      ?? #刪除集合
        true

        drop()方法返回true,成功丟棄;否則返回false

        >show collections                        #再次檢查數據庫中集合列表
            mycol
        system.indexes
        yiibai
  • MongoDB插入文檔(Insert() / save方法)
語法:insert基本語法如:  >db.COLLECTION_NAME.insert(document)
db.mycol.insert({
                            title:        ‘MongoDB Overview‘,
                            description:‘MongoDB id no sql database‘,
                            by:            ‘tutorials yiibai‘,
                            url:        ‘http://www.yiibai.com‘,
                            tags:        [‘mongodb‘,‘database‘,‘NoSQL‘],
                            like:        100
                            })
db.collection_name.find()????????????#顯示插入的數據

插入多個文檔 :?? db.mycol.insert([{},{}])
db.score.insert([{name:"張三",subject:"地理",score:88},
                               {name:"李四",subject:"語文",score:87}])
  • MongoDB更新文檔(update()/save()方法)
    updata()更新現有文檔值 / save()用於替換現有文檔值。
updata()基本語法如下:
>db.COLLECTION_NAME.update(selection_criteria,updated_data)

#mycol集合文件:
{"_id":ObjectID(4685481851451we55),"title":"MongoDB overview"}
{"_id":ObjectID(4685481851451we56),"title":"NoSQL overview"}
{"_id":ObjectID(4685481851451we57),"title":"tutorials overview"}

>db.mycol.update({"title":"MongoDB overview"},
{$set: {"title":"tutorials overview"}})                     #更新標題

>db.mycol.update({"title":"MongoDB overview"},
{$set: {"title":"tutorials overview"}},{multi:true})    #要實現多個更新在後面加{multi:true}
>db.mycol.find()                                                   #查詢插入的數據

save()方法?? ?替換現有符合此ID文檔的所有數據
>db.collection_name.save({id.ObjectID(),new_data})
db.mycol.save({"_id":ObjectID(5689745956adf56as7),
                        "title":"yiibai new topic",
                        "by":"yiibai"})
>db.mycol.find()                                        #查詢插入的數據

MongoDB數據庫—基礎語法