2011-11-22 49 views
2

在蒙戈外殼,在收集運行映射縮減後命名輸出STATS的DEP:蒙戈DB收藏 - 有些事,有些沒有

>show collections 
DEPS 
STATS 
system.indexes 

所以我看到兩個集合,沒問題。但是:

>db.DEPS.findOne() <-- returns a DEPS record 
>db.STATS.findOne() <-- returns err msg "db.stats.findOne is not a function" 

所以看統計數據我需要鍵入:

>db.getCollection("STATS").findOne() 

這不是一個問題,只要我可以看到所有我需要看到的數據。但爲了理解Mongo,爲什麼第一個集合(通過mongoimport創建)帶有findOne方法,第二個(通過mapreduce創建)不是?

+2

有趣

>db.getCollection("stats").drop() 

只需更換findOne()。也許集合名稱與'db.stats()'命令衝突(它給你數據庫統計信息)。不過,我並沒有預料到這種情況下的不敏感。 – Thilo

+0

蒂洛 - 你釘了它。我在上面的文章中使用了大寫的STATS(爲了便於閱讀),但實際的實驗是以小寫進行的。以大寫字母再次測試一切都很好。我是Mongo的全新人物,並沒有意識到小寫字母「stats」是一個已經在使用的名字。如果您重新發布作爲stk ovflow的答案,我會點擊接受 - 再次感謝。 – tpascale

回答

3

有趣。也許集合名稱與db.stats()命令(它給你數據庫統計信息)衝突。不過,我並沒有預料到這種情況下的不敏感。

+0

就是這樣 - 我在運行時使用了小寫字母,事實上 - 謝謝 – tpascale

0

我遇到了同樣的問題,它似乎是名稱衝突。我不知道如何刪除了「統計信息」收集和原來的問題給出了答案:用滴()