首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >db.stats()/collections数与db.getCollectionNames()计数的差异

db.stats()/collections数与db.getCollectionNames()计数的差异
EN

Stack Overflow用户
提问于 2013-02-01 17:10:35
回答 1查看 524关注 0票数 1

我在mongodb-shell中尝试学习mongodb,并注意到db.stats()显示的集合数量比db.getCollectionNames()显示的多1

下面是一个例子:

代码语言:javascript
复制
> db.stats();
{   
  "db" : "learn",
  "collections" : 6,
  "objects" : 47, 
  ...
  ...

  "ok" : 1 
}   

> db.getCollectionNames();
[ "hit_stats", "hits", "system.indexes", "system.profile", "unicorns" ]

因此db.stats说有6集合,其中db.getCollectionNames只列出5集合名。为什么会有这种差异?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-02-03 06:08:36

您可以看到这种差异,因为存储集合信息的system.namespaces集合本身并不包括在内。示例包含2个集合(itemsuser):

代码语言:javascript
复制
> db.system.namespaces.find()
{ "name" : "test.system.indexes" }
{ "name" : "test.items.$_id_" }      // index
{ "name" : "test.items" }
{ "name" : "test.users.$_id_" }      // index
{ "name" : "test.users" }

> db.stats()['collections']
4

> db.getCollectionNames()
[ "items", "system.indexes", "users" ]

如您所见,system.namespaces不包括它自己。db.stats()在其计算中确实包括了它,因此产生了1集合的差异。希望这是有意义的。

还可以看到这些bug报告服务器-1162服务器-1308

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14651497

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档