国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

(翻譯) MongoDB(4) 文檔

TNFE / 684人閱讀

摘要:使用文檔來存儲數據紀錄。是文檔的二進制表示。文檔的局限性文件有以下屬性文檔大小限制文檔的最大值為。存儲的文檔的大小超過了最大值,提供。在版本之前,不會盡量維持原文檔中的字段順序。更新文檔更新文檔使用更新操作中指定字段去執行指定數據的修改。

MongoDB使用BSON文檔來存儲數據紀錄。BSON是JSON文檔的二進制表示。盡管它比JSON包含更多的數據類型。對于BSON規范,查看bsonspec.org,另請參見BSON類型。

文檔結構

MongoDB的文檔是由字段和值組成的,具有下列的結構:

{
   field1: value1,
   field2: value2,
   field3: value3,
   ...
   fieldN: valueN
}

一個字段的值可以是任何BSON數據類型。包含其他文檔、數組、和文檔數組。例如,以下文檔包含不同類型的值:

var mydoc = {
    _id: ObjectId("5099803df3f4948bd2f98391"),
    name: { first: "Alan", last: "Turing" },
    birth: new Date("Jun 23, 1912"),
    death: new Date("Jun 07, 1954"),
    contribs: [ "Turing machine", "Turing test", "Turingery" ],
    views : NumberLong(1250000)
}

上述字段具有下列數據類型:

_id 是一個 ObjectId 對象

name 是一個嵌入式文檔,包含firstlast

birthdeath包含數據類型的值

contribs 包含一個字符串數組

views包含 NumberLong 類型

字段名稱

字段名稱是字符串。
文檔對于字段名具有以下限制:

字段名_id被保留用來作為主鍵,在集合中它的值必須是唯一的,是不可變的,可以是除數組外的任何類型

字段名稱不能為美元符號$開頭

字段名稱不能包含.字符

字段名稱不能包含null字符
BSON文檔可以有多個相同的字段名,大多數 MongoDB接口,然而,表示一個結構的MongoDB (即哈希表) 不支持重復的字段名稱,如果你需要操作多個相同字段名的文檔,請查閱你的驅動文檔。

一些通過內部MongoDB進程創建的文檔可能會包含重復的字段, 但是 MongoDB進程將永遠不會添加重復的字段到一個已存在的用戶文檔。

字段值限制

對于已索引的集合,索引字段的值將會有一個最大索引Key的長度限制。查閱最大索引Key長度來獲取詳情。

點符號

MongoDB使用點符號來訪問數組中的元素和內嵌文檔的字段。

數組

通過從0開始的數字下標來指定或者訪問數組中的一個元素。用點符號來連接數組名稱和從0開始的數字下標,并用引號包括起來:

"."

例如,在一個文檔中給出以下字段:

{
   ...
   contribs: [ "Turing machine", "Turing test", "Turingery" ],
   ...
}

指定數組中contribs字段中的第三個元素,使用點符號contribs.2
另請參閱:

當更新時,使用$映射來操作符

當數組的索引位置未知的時候,$可以映射為操作符

在數組中使用點符號查詢數組的例子

內嵌文檔

使用點符號指定或者訪問一個內嵌文檔的字段,使用點符號來連接內嵌文檔名稱和字段名稱,并用引號包括起來:

"."

例如,在一個文檔中給出以下字段:

{
   ...
   name: { first: "Alan", last: "Turing" },
   contact: { phone: { type: "cell", number: "111-222-3333" } },
   ...
}

指定name字段中的last字段,使用點符號:name.last,

指定contact字段中的phone字段中的number字段,使用點符號:contact.phone.number
另請查閱:

嵌入式文檔查詢 使用點符號查詢內嵌文檔的例子。

文檔的局限性

文件有以下屬性:

文檔大小限制

BSON文檔的最大值為16M。
最大文檔的大小有助于確保一個文檔不能使用過多的RAM或者在傳輸的過程中也會占用大量的帶寬。存儲的文檔的大小超過了最大值,MongoDB提供 GridFS API。參閱 mongofiles和你的驅動文檔關于GridFS的更多信息。

文檔字段排序

MongoDB會維持在寫入操作中文檔字段的順序,下列情況除外:

_id字段總是在文檔的第一個字段

包含字段名重命名的更新操作可能會導致文檔的字段重新排序
在2.6版本中改變:自2.6版本開始,MongoDB會盡量維持原文檔中的字段順序。在2.6版本之前,MongoDB不會盡量維持原文檔中的字段順序。

_id字段

在MongoDB中,集合中保存文檔需要一個唯一的_id字段作為主鍵。如果_id字段在文檔中未指定,MongoDB會將 ObjectId作為_id字段的默認值,即如果一個文檔在插入的時候在頂級字段中不包含_id,MongoDB驅動會增加一個帶有ObjectId_id字段。
除此以外,如果Mongod接收一個不包含_id字段的文檔來插入(即通過一個更新操作來執行upsert選項),Mongod將會增加一個帶有ObjectId_id字段。
_id字段具有以下行為和約束:

默認情況下,在一個集合創建的時候,MongoDB在_id上創建一個唯一索引。

_id總是在文檔的第一個字段。如果服務器接收到的文檔_id文檔不在最前面,那么服務器將會移動該字段到文檔的開始。

_id字段可能會包含除了數組之外的任何BSON數據類型
警告:為了保證復制功能,不要保存_id字段為BSON正則表達式類型的值。

下列是用來保存_id值的常見做法:

使用一個ObjectId

如果可以用的話,使用一個天然的唯一標識符。這樣節省了空間和避免了額外索引。

生成一個自增數字

在你的程序中生成一個UUID。在集合中和_id字段中更高效的存儲UUID的值,存儲UUID的值使用BSON的BinDate類型
索引鍵屬于 BinData類型,可以更有效的在索引中存儲:

二進制子類型值是在0-7或者128-135之間

字節數組的長度是:0,1,2,3,4,5,6,7,8,10,12,14,16,20,24或者32

使用你的驅動BSON UUID設施來生成UUID。請注意驅動程序可以實現UUID的不同邏輯的序列化和反序列化,這可能與其他的驅動程序并不能完全兼容。請查閱你的驅動文檔來獲取關于UUID的互操作性的更多信息。

注意:大多數MongoDB驅動客戶端將會在發送插入操作到MongoBD之前包含_id字段并生成一個ObjectId;然而,如果客戶端發送一個不包含_id字段的文檔,Mongod將會增加一個_id字段和生成一個ObjectId

文檔結構的其他用戶

除了定義數據紀錄,MongoDB全部使用文檔結構,包含并不限于:查詢過濾器,更新指定文檔和索引指定文檔等。。。

查詢文檔篩選

查詢文檔篩選指定條件來確定那些文檔可以執行讀取,更新和刪除操作。
你可以使用:來指定相等的條件表達式和執行操作表達式。

{
  : ,
  : { :  },
  ...
}

更多例子,請查看查詢過濾或者規范。

更新文檔:

更新文檔使用db.collection.update()更新操作中指定字段去執行指定數據的修改。

{
  : { : , ... },
  : { : , ... },
  ...
}

更多例子,請查看更新規范。

索引文檔

索引文檔定義字段索引和索引類型:

{ : , : , ...  }
其他資源

文檔思考第一部分

下一章:https://segmentfault.com/a/11...
原文地址:https://docs.mongodb.com/manu...

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/18886.html

相關文章

  • (翻譯) MongoDB(5) BSON類型

    摘要:類型數字別名注意已過時布爾日期正則表達式位整數時間戳位整數要確定字段的類型,請查看在中檢驗類型。是位整數,代表自紀元年月日以來的毫秒數。 BSON是一個用來存儲文檔的二進制序列化格式,并且可以在MongoDB中遠程調用。該BSON規范位于bsonspce.org。 BSON在文檔中支持下列數據類型作為值。每個數據類型都有相對應的數字和字符串別名用 $type 操作執行BSON類型來查詢...

    KnewOne 評論0 收藏0
  • (翻譯) MongoDB(15) 在 Tarball 上安裝MongoDB社區版

    摘要:概述的社區版的編譯版本沒有為其它系統安裝社區版的支持包提供了一個簡單的選項注意建議不要使用這種辦法除非你有特定的需要可用的軟件包不能解決的時候安裝社區版提供了位和位已棄用的構建的歸檔。選擇適合你的系統的安裝流程。 概述 Linux的MongoDB社區版的編譯版本沒有為其它 Linux 系統安裝MongoDB社區版的支持包提供了一個簡單的選項 注意: 建議不要使用這種辦法, 除非你有特...

    harryhappy 評論0 收藏0
  • (翻譯) MongoDB(16) 在 OS X 上安裝MongoDB社區版

    摘要:概述使用本教程在系統上安裝社區版平臺支持自版本開始僅支持和更高版本的通過最流行的軟件包管理工具或者下載網站安裝的是可用的安裝社區版注意安裝以前的版本請參考那個版本的文檔例如參閱版本你可以使用或者手動安裝社區版這部分兩個方法都有介紹使用安裝 概述 使用本教程在 OS X 系統上安裝 MongoDB 社區版. 平臺支持: 自3.0版本開始, MongoDB 僅支持 OS X 10.7 (...

    tigerZH 評論0 收藏0
  • (翻譯) MongoDB(1) 簡介

    摘要:文檔數據庫在中,一條紀錄就是一個文檔,它是由字段和值對組成的數據結構。尤其是在數據庫系統中,對于嵌入式數據模型的支持減少了活動。它提供自動故障轉移數據冗余副本集是一組服務器,保持相同的數據集,提供冗余和提高數據可用性的。 MongoDB 是一個提供了高性能、高可用、自動擴展的開源的文檔數據庫。 文檔數據庫 在MongoDB中,一條紀錄就是一個文檔,它是由字段和值對組成的數據結構。Mon...

    Magicer 評論0 收藏0
  • (翻譯) MongoDB(2) 數據庫和集合

    摘要:例如,在集合中的數據紀錄在數據庫中的集合。因此,你可以切換到一個不存在的數據庫,并且在中執行以下操作如果它們不存在的時候,創建了數據庫和集合。限制數據庫名字的列表,請參閱命名限制。集合在集合中存儲文檔。集合是類似關系數據庫的表。 MongoDB 存儲BSON文檔。例如,在集合中的數據紀錄;在數據庫中的集合。showImg(https://segmentfault.com/img/bVC...

    GeekGhc 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<