1. <i id="s6b2k"><small id="s6b2k"></small></i>
    <b id="s6b2k"><bdo id="s6b2k"></bdo></b>
  2. <wbr id="s6b2k"></wbr>

    MongoDB 常用的數據類型和基本操作_MongoDB

    來源:腳本之家  責任編輯:小易  

    NO.1 MongoDB的常用數據類型

        MongoDB中的文檔類似json,我們知道,在json中,最常用的數據類型有null、bool、數組、字符串、數據、json對象等等。相對比較少,比如對于時間類型的數據,json是無法表示的,而MongoDB中對json進行了簡單的優化,像json,但是又不是json。下面我們慢慢說

         MongoDB的常用數據類型和MySQL比較像,你可以對比著看。它的常用數據類型有:

    1、null

    用于表示空值或者不存在的字段

    {"x":null}

    2、bool

    這個容易理解,true or false

    {"x":true}

    3、整數

    在MongoDB自帶的shell中不可用,shell中的需要使用函數來表示整數,如下:

    {"x":NumberInt("3")}

    如果我們寫成

    {"x":3}

    這里的3會被表示成double。

    4、字符串

    最常用的數據類型

    {"x":"string"}

    5、對象id

    對象id是12字節的唯一ID

    {"x":ObjectId()}

    在MongoDB的數據記錄里面,也就是文檔里面,必須有一個_id鍵,這個_id鍵你可以簡單理解為唯一標識,類似MySQL中的自增主鍵,但是它一般不設置成自增的,因為在分布式環境中,同步自動增加主鍵值既費時又費力,MongoDB為了保證分布式場景下的性能,通過自身生成方式來產生_id,_id的類型,稱之為ObjectId類型。

    該類型使用12字節的存儲空間,每個字節里面是2位16進制的數字,是一個24位的字符串。這12個字節的生成方式如下:

    0、1、2、3位是時間戳,提供秒級別唯一性

    4、5、6位是機器的唯一標識符,提供機器級別唯一性

    7、8位是當前生成ObjectId的進程標識符,保證不同進程的唯一性

    9、10、11位是一個計數器,保證同一秒相同進程產生的ObjectId的唯一性。

    6、日期類型

    日期類型存儲的是從標準紀元開始的毫秒數,不存儲時區。

    {"x":new Data()}

    示例如下:

    > db.num.insert({"age": new Date()})
    WriteResult({ "nInserted" : 1 })
    > db.num.find()
    { "_id" : ObjectId("5f96b5e15e5c5ff982b9c6af"), "age" : 28 }
    { "_id" : ObjectId("5f9835d0f24f04e23fb63878"), "age" : 3 }
    { "_id" : ObjectId("5f983621f24f04e23fb63879"), "age" : 3 }
    { "_id" : ObjectId("5f9838d2f24f04e23fb6387a"), "age" : ISODate("2020-10-27T15:12:18.739Z") }

    7、數組

    值的集合或者列表可以表示成數組

    {"x":["a","b","c"]}

    8、內嵌文檔

    文檔可以包含別的文檔

    {"x":{"foo":"bar"}}

    9、代碼

    文檔中可以包含JavaScript代碼

    {"x":function(){/*-----*/}}

    NO.2 集合文檔的基本操作

         這塊兒可能是比較關鍵的部分了,在MySQL中,增刪改查是最最基礎的功能,在MongoDB中,這些技能也是必備的。

    集合相關操作

    1、查詢集合

    查看當前數據庫下面的集合,可以使用show collections命令。

    2、創建集合

    在MongoDB中,不需要單獨創建集合,一般情況下,只要我們直接將文檔插入到集合中,就可以看到集合自動生成了,舉個例子:

    > show collections # 查看集合
    num
    person
    
    > db.aaa.insert({"name":"yeyz"})
    WriteResult({ "nInserted" : 1 })
    
    > show collections #查看集合,發現aaa這個集合生成了
    aaa
    num
    person

    3、刪除集合

    > show collections
    aaa
    num
    person
    > 
    > db.aaa.drop() #刪除集合
    true
    > show collections
    num
    person

    關于集合,最常見的操作就是上面幾個。查詢集合、創建集合、刪除集合。

    再來看文檔相關的操作:

    1、插入文檔

    上面的例子中,我們使用insert操作已經演示了插入文檔的方法。我把兩種常見的方法寫在一起:

    方法一:直接插入文檔
    > db.aaa.insert({"name":"yeyz"})
    WriteResult({ "nInserted" : 1 })
    
    方法二:將文檔保存在變量里面,插入變量
    > record={"name":"zhangsan"}
    { "name" : "zhangsan" }
    > db.aaa.insert(record)
    WriteResult({ "nInserted" : 1 })
    
    查找集合所有內容
    > db.aaa.find()
    { "_id" : ObjectId("5f983b81f24f04e23fb6387c"), "name" : "yeyz" }
    { "_id" : ObjectId("5f983ba1f24f04e23fb6387d"), "name" : "zhangsan" }

    2、查詢文檔

    查詢文檔的方法比較多,展開來說可以說很久,就像我們的SQL語法一樣,有各種各樣的寫法,這里先說下最簡單的,查找所有對象、查找一條對象,或者查找某一條對象的方法。看例子:

    #查找所有記錄
    > db.aaa.find()
    { "_id" : ObjectId("5f983b81f24f04e23fb6387c"), "name" : "yeyz" }
    { "_id" : ObjectId("5f983ba1f24f04e23fb6387d"), "name" : "zhangsan" }
    > 
    >
    #查找一條記錄
    > db.aaa.findOne()
    { "_id" : ObjectId("5f983b81f24f04e23fb6387c"), "name" : "yeyz" }
    
    #帶過濾條件的,查找name=zhangsan的記錄
    > db.aaa.find({"name":"zhangsan"})
    { "_id" : ObjectId("5f983ba1f24f04e23fb6387d"), "name" : "zhangsan" }

    3、刪除記錄

    刪除記錄的方法也比較簡單,如下:

    #查找所有記錄
    > db.aaa.find()
    { "_id" : ObjectId("5f983b81f24f04e23fb6387c"), "name" : "yeyz" }
    { "_id" : ObjectId("5f983ba1f24f04e23fb6387d"), "name" : "zhangsan" }
    
    #刪除name=zhangsan的記錄
    > db.aaa.remove({"name":"zhangsan"})
    WriteResult({ "nRemoved" : 1 })
    > db.aaa.find()
    { "_id" : ObjectId("5f983b81f24f04e23fb6387c"), "name" : "yeyz" }
    
    # 僅剩name=yeyz的一條記錄
    > db.aaa.find()
    { "_id" : ObjectId("5f983b81f24f04e23fb6387c"), "name" : "yeyz" }

    如果不想要過濾條件,可以直接使用:

    db.aaa.remove()來刪除所有的記錄。

    4、更新記錄

    更新記錄,在MongoDB中有些麻煩,例如下面的場景

    #查找所有記錄
    > db.aaa.find()
    { "_id" : ObjectId("5f983b81f24f04e23fb6387c"), "name" : "yeyz" }
    { "_id" : ObjectId("5f983d76f24f04e23fb6387e"), "name" : "zhangsan" }
    
    #用一個變量表示要修改的文檔
    > record={"name" : "yeyz","age":18}
    { "name" : "yeyz", "age" : 18 }
    
    #用剛才的變量替換匹配條件的結果
    > db.aaa.update({"name" : "yeyz"},record)
    WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
    
    > db.aaa.find()
    { "_id" : ObjectId("5f983b81f24f04e23fb6387c"), "name" : "yeyz", "age" : 18 }
    { "_id" : ObjectId("5f983d76f24f04e23fb6387e"), "name" : "zhangsan" }
    
    # 修改變量的age屬性
    > record.age=20
    20
    
    #再次替換原來的文檔
    > db.aaa.update({"name" : "yeyz"},record)
    WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
    > db.aaa.find()
    { "_id" : ObjectId("5f983b81f24f04e23fb6387c"), "name" : "yeyz", "age" : 20 }
    { "_id" : ObjectId("5f983d76f24f04e23fb6387e"), "name" : "zhangsan" }

    上面的方法在條件唯一匹配的時候不會有問題,但是在條件不唯一匹配的場景下,可能存在一些隱患,下次我們再分享,今天就先這么點兒吧。

    每天的內容不多,慢慢來,一點一點搞懂它。。。晚安嘍。

    以上就是MongoDB 常用的數據類型和基本操作的詳細內容,更多關于MongoDB 數據類型和基本操作的資料請關注真格學網其它相關文章!

    您可能感興趣的文章:Mongodb 利用mongoshell進行數據類型轉換的實現方法基于MongoDB數據庫的數據類型和$type操作符詳解mongodb 數據類型(null/字符串/數字/日期/內嵌文檔/數組等)Mongodb 數據類型及Mongoose常用CURDMongoDB支持的java數據類型和測試例子MongoDB的基本操作實例詳解【服務端啟動,客戶端連接,CRUD操作】MongoDB數據庫安裝配置、基本操作實例詳解Mongodb基本操作與Python連接mongodb并進行基礎操作的方法Android編程連接MongoDB及增刪改查等基本操作示例MongoDB中對文檔的增刪查改基本操作方法總結Linux系統下MongoDB的簡單安裝與基本操作Python中的MongoDB基本操作:連接、查詢實例MongoDB使用指南--基本操作

  3. 本文相關:
  4. mongodb操作類封裝實例代碼
  5. 淺談mongodb中query查詢
  6. mongo復制集同步驗證的實例詳解
  7. mongodb數據庫的備份與恢復操作實例
  8. mongodb處理中文索引與查找字符串詳解
  9. mongodb 數據生成insert 語句的示例代碼
  10. 使用centos系統中的crontab命令對mongodb定時備份恢復
  11. nosql反模式 - 文檔數據庫篇
  12. mongodb運維_動力節點java學院整理
  13. mongodb各種查詢操作詳解
  14. mongodb 數據類型 怎樣使用
  15. mongodb數據庫適合做什么
  16. mongodb是什么類型的數據庫
  17. mongodb的基本概念
  18. mongo和mongodb的區別
  19. MongoDB 插入數據可以指定類型嗎
  20. 使用mongodb數據庫有哪些優勢?
  21. 請問使用mongodb數據庫有哪些優勢?
  22. mongodb的數據模塊與傳統的數據庫模型有什么區別
  23. 使用過MySQL和MongoDB的同學,來說一下它們的區別
  24. 網站首頁網頁制作腳本下載服務器操作系統網站運營平面設計媒體動畫電腦基礎硬件教程網絡安全mssqlmysqlmariadboracledb2mssql2008mssql2005sqlitepostgresqlmongodbredisaccess數據庫文摘數據庫其它首頁mongodb 利用mongoshell進行數據類型轉換的實現方法基于mongodb數據庫的數據類型和$type操作符詳解mongodb 數據類型(null/字符串/數字/日期/內嵌文檔/數組等)mongodb 數據類型及mongoose常用curdmongodb支持的java數據類型和測試例子mongodb的基本操作實例詳解【服務端啟動,客戶端連接,crud操作】mongodb數據庫安裝配置、基本操作實例詳解mongodb基本操作與python連接mongodb并進行基礎操作的方法android編程連接mongodb及增刪改查等基本操作示例mongodb中對文檔的增刪查改基本操作方法總結linux系統下mongodb的簡單安裝與基本操作python中的mongodb基本操作:連接、查詢實例mongodb使用指南--基本操作mongodb操作類封裝實例代碼淺談mongodb中query查詢mongo復制集同步驗證的實例詳解mongodb數據庫的備份與恢復操作實例mongodb處理中文索引與查找字符串詳解mongodb 數據生成insert 語句的示例代碼使用centos系統中的crontab命令對mongodb定時備份恢復nosql反模式 - 文檔數據庫篇mongodb運維_動力節點java學院整理mongodb各種查詢操作詳解mongodb常用操作命令大全mongodb各種查詢操作詳解mongodb數據庫插入、更新和刪除操mongodb 數據庫操作--備份 還原 mongodb插入數據的3種方法mongodb中使用distinct去重的簡單淺談mysql和mariadb區別(mariadbmongodb整庫備份與還原以及單個cmongodb查詢操作限制返回字段的方mongodb 實現遠程連接mongodb自增id實現方法mongodb開源數據庫開發工具dbkodamongodb數據庫的備份與恢復操作實例如何使用docker安裝一個mongodb最新版詳解mongodb范圍片鍵和哈希片鍵mongodb的查詢方法關于mongodb謹防索引seek的效率問題詳析通用mapreduce程序復制hbase表數據mongodb日志文件過大的解決方法mongodb系列教程(五):mongo語法和mysq
    免責聲明 - 關于我們 - 聯系我們 - 廣告聯系 - 友情鏈接 - 幫助中心 - 頻道導航
    Copyright © 2017 www.yu113.com All Rights Reserved
    战天txt全集下载