1. 程式人生 > >MongoDB學習2 集合

MongoDB學習2 集合

集合就是 MongoDB 文件組,類似於 RDBMS (關係資料庫管理系統:Relational Database Management System)中的表格。

集合存在於資料庫中,集合沒有固定的結構,這意味著你在對集合可以插入不同格式和型別的資料,但通常情況下我們插入集合的資料都會有一定的關聯性。

比如,我們可以將以下不同資料結構的文件插入到集合中:

{"site":"www.baidu.com"}
{"site":"www.google.com","name":"Google"}
{"site":"www.runoob.com","name":"菜鳥教程","num":5}

當第一個文件插入時,集合就會被建立。

合法的集合名

  • 集合名不能是空字串""。
  • 集合名不能含有\0字元(空字元),這個字元表示集合名的結尾。
  • 集合名不能以"system."開頭,這是為系統集合保留的字首。
  • 使用者建立的集合名字不能含有保留字元。有些驅動程式的確支援在集合名裡面包含,這是因為某些系統生成的集合中包含該字元。除非你要訪問這種系統建立的集合,否則千萬不要在名字裡出現$。 

如下例項:

db.col.findOne()

capped collections

Capped collections 就是固定大小的collection。

它有很高的效能以及佇列過期的特性(過期按照插入的順序). 有點和 "RRD" 概念類似。

Capped collections是高效能自動的維護物件的插入順序。它非常適合類似記錄日誌的功能 和標準的collection不同,你必須要顯式的建立一個capped collection, 指定一個collection的大小,單位是位元組。collection的資料儲存空間值提前分配的。

要注意的是指定的儲存大小包含了資料庫的頭資訊。

db.createCollection("mycoll", {capped:true, size:100000})
  • 在capped collection中,你能新增新的物件。
  • 能進行更新,然而,物件不會增加儲存空間。如果增加,更新就會失敗 。
  • 資料庫不允許進行刪除。使用drop()方法刪除collection所有的行。
  • 注意: 刪除之後,你必須顯式的重新建立這個collection。
  • 在32bit機器中,capped collection最大儲存為1e9( 1X109)個位元組。