2013-08-07 80 views
4

在蒙戈外壳,我可以用这样的命令找到集合stat记录:为什么存在集合但无法在展示集合中找到?

use gm; 
gm.stat.find({}); 

stat没有在节目采集结果中列出。

+0

您可以重命名的收集和尝试? 'stats'是一个保留的名字,因为它用于一个函数,所以stat可能会用于别的东西 – Munim

+0

你的命令已经不正确,因为它是''db.stat.find({})''而不是''' gm.stat.find({});'' – Derick

+0

我的命令实际上是使用gm; db.stat.find({}); – tuesday

回答

1

任何集合实际上一直存在(即您不会收到错误,指出“您没有创建集合”)。只要您将第一个文档插入到一个集合中,这也将以物理方式存在(将在磁盘上创建)。所以,如果你真的想确保集合存在使用:

db.getCollectionNames() 

这将显示只有至少有一个文件插入到他们,即使他们目前空的集合。

一旦身体产生,收集,可以使用drop命令删除:

db.myColl.drop() 

这将物理删除,但“虚”的一个将仍然存在。

至于你的榜样,运行:

db.stat.insert({}); print("Collection stat exists:" + (db.getCollectionNames().indexOf("stat") !== -1)); 

会告诉你:

Collection stat exists: true 
+1

他说他有他的收藏记录。至少这就是问题的听起来像。 – Munim

+0

我也有同样的问题。但我有点奇怪,我可以看到我的收藏在本地主机,但不是在远程IP。当我在本地使用show collection时,它会给我收藏集名称,但是在远程IP中它不会显示任何内容。有人请帮忙 –

相关问题