2013-08-07 15 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中它不會顯示任何內容。有人請幫忙 –

相關問題