squ*_*oid 5 database mongodb mongodb-query
我有一个名为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
}
Run Code Online (Sandbox Code Playgroud)
3个收藏怎么样?
对象1000004中没有4个额外的预期?
最后我做了db.getCollectionNames()
它[ "student", "system.indexes" ]
什么是system.indexes?
请有人详细说明吗?
我是mongo世界的新手.
当用户第一次将数据存储在数据库中或显式创建数据库时,会创建两个集合.
第一个,system.indexes包含有关数据库的各种集合中定义的索引的信息.您甚至可以使用它来访问它
db.system.indexes.find()
Run Code Online (Sandbox Code Playgroud)
隐藏的一个,system.namespaces保存有关数据库的一些元数据,实际上是从数据库管理的角度来看所有现有实体的名称.
虽然未显示,但您仍可以访问它:
db.system.namespaces.find()
Run Code Online (Sandbox Code Playgroud)
警告:不要弄乱他们中的任何一个.您的数据库很可能无法使用.你被警告了!
甚至可能超过这两个.有关详细信息,请阅读MongoDB文档中的系统集合.
实际上,如果您尝试访问如上所示的系统数据库,那么这个变得非常容易.在foobardb使用集合foo和默认索引打开的数据库中_id,查询system.indexes将给出这样的结果(美化):
{
"v" : 1,
"key" : {
"_id" : 1
},
"name" : "_id_",
"ns" : "foobardb.foo"
}
Run Code Online (Sandbox Code Playgroud)
请注意,这是一个单独的文档.第二个查询的美化输出如下所示:
{ "name" : "foobardb.foo" }
{ "name" : "foobardb.system.indexes" }
{ "name" : "foobardb.foo.$_id_" }
Run Code Online (Sandbox Code Playgroud)
在这里,我们有三个文件.所以我们在元数据中有4个额外的文档.
| 归档时间: |
|
| 查看次数: |
276 次 |
| 最近记录: |