簡體   English   中英

MongoDB額外收藏

[英]MongoDB extra Collections

我有一個名為index的數據庫只有一個名為student的集合。

當我觸發查詢db.students.find({}).count()

它顯示了1000000個文檔。

但是當我使用db.stats()它顯示結果如: -

{
        "db" : "index",
        "collections" : 3,
        "objects" : 1000004,
        "avgObjSize" : 59.95997216011136,
        "dataSize" : 59960212,
        "storageSize" : 87420928,
        "numExtents" : 14,
        "indexes" : 1,
        "indexSize" : 32458720,
        "fileSize" : 520093696,
        "nsSizeMB" : 16,
        "ok" : 1
}
  1. 3個收藏怎么樣?

  2. 對象1000004中沒有4個額外的預期?

最后我做db.getCollectionNames()它顯示[ "student", "system.indexes" ]

什么是system.indexes

請有人詳細說明嗎?

我是mongo世界的新手。

神秘的2個系列

當用戶第一次將數據存儲在數據庫中或顯式創建數據庫時,會創建兩個集合。

第一個, system.indexes保存有關數據庫的各種集合中定義的索引的信息。 您甚至可以使用它來訪問它

db.system.indexes.find()

隱藏的一個, system.namespaces保存有關數據庫的一些元數據,實際上是從數據庫管理的角度來看所有現有實體的名稱。

雖然未顯示,但您仍可以訪問它:

db.system.namespaces.find()

警告 :不要弄亂他們中的任何一個。 您的數據庫很可能無法使用。 你被警告了!

甚至可能超過這兩個。 有關詳細信息,請閱讀MongoDB文檔中的系統集合

神秘的4個物體

實際上,如果您嘗試訪問如上所示的系統數據庫,那么這個變得非常容易。 在一個名為foobardb的數據庫中, foobardb有一個集合foo_id上的默認索引,查詢system.indexes將得到一個像這樣的結果(美化):

{
  "v" : 1,
  "key" : {
    "_id" : 1
  },
  "name" : "_id_",
  "ns" : "foobardb.foo"
}

請注意,這是一個單獨的文檔。 第二個查詢的美化輸出如下所示:

{ "name" : "foobardb.foo" }
{ "name" : "foobardb.system.indexes" }
{ "name" : "foobardb.foo.$_id_" }

在這里,我們有三個文件。 所以我們在元數據中有4個額外的文檔。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM