mongoDB 文檔概念

mongoDB 文檔概念

什麼是文檔

  •   文檔是 mongodb 基本的數據組織單元,相似於mysql 中的記錄
  •   文檔由多個鍵值對組成,每一個鍵值對錶達一個數據項
  •   屬於 bson 數據

  ps:javascript

     bson 數據: json 手下的敗犬 bson.... 瞭解就好java

文檔中的鍵值對

特色

  • 無序
  • 經過鍵取其中的值
  • 鍵不能重複

即文檔的域名(至關於mysql 中的字段名),表達數據的基本信息mysql

規定

  1. 使用 utf8
  2. 不能含有 "\0"

ps:算法

  鍵能夠不加引號,值必須加引號,默認就是 utf8類型sql

鍵的存儲的值mongodb

數據類型

        Type       Number       Alias            Notes
Double 1 「double」
String 2 「string」
Object 3 「object」
Array 4 「array」
Binary data 5 「binData」
Undefined 6 「undefined」 Deprecated.
ObjectId 7 「objectId」
Boolean 8 「bool」
Date 9 「date」
Null 10 「null」
Regular 11 「regex」
DBPointer 12 「dbPointer」 Deprecated.
JavaScript 13 「javascript」
Symbol 14 「symbol」   Deprecated.
JavaScript 15 「javascriptWithScope」
32-bit integer 16 「int」
Timestamp 17 「timestamp」
64-bit integer 18 「long」
Decimal128 19 「decimal」    New in version 3.4.
Min key -1 「minKey」
Max key 127 「maxKey」

經常使用的

 整形(int)         整數
 浮點型(double)    小數
 布爾(bool)        true/false
 字符串(string)    "abcdsd" utf-8 格式
 數組(array)       [1,2,3,40] 列表
 時間(date)        日期/時間
 binary Data        二進制格式類型
 空值(Null)        null 空(關鍵字)
 對象(object)      內部文檔
 ObjecId            ID 對象

注意點

關於 ObjecId 表示每一個集合本身的一個不會重複的標識 IDjson

輸入:> db.羊駝.find()
輸出: { "_id" : ObjectId("5c76361ab9330b7c152100ff"), "name" : "yangtuo", "age" : 17 }

字段解析:數組

  "_id": 表示自動生成的域名,表示主鍵域微信

  ObjectId: 由24爲 16位進制碼經過必定算法獲得spa

關於本身自定義:

  必需要在鍵值中 用 "_id"  而後手動制定

  且,哪怕是本身自定義也不能重複,重複會報錯

文檔結構設計

1. 一個集合中的文檔儘可能表達相同的數據內容

2. 文檔層次不宜嵌套過多

3. 在集合中文檔使用比較自由,原則上結構能夠各不相同

場景設計對比mysql

用戶註冊填寫 qq,微信,微博,ins 要求至少寫一個

mysql 的話就要4個字段,而後必然產生大量的空數據

mongoDB 的話就能夠寫那個就存那個

相關文章
相關標籤/搜索