2014-02-23 133 views
0

有沒有mongo中的子集合這樣的概念,就像是​​一個子文檔,但支持完整的crud api?我想整理我的分貝來執行這樣的疑問:是否支持mongodb子集

db.games.pong.leaderbords.find({score:{'$gt':99}}) 

換句話說沒有任何層次結構集合或我必須爲每個集合創建一個完全描述性的名稱,如:

db.pongLeaderboard.find({score:{'$gt':99}}); 

編輯:正如尼古拉斯指出,點符號是可以允許的。我的意思要問的是我能做到這一點,有gamespong是正確的收藏在自己的權利,所以我仍然可以做這樣

db.games.find({name:'pacman'}) 
+0

對,在你編輯之後,我很確定答案不幸的是,一個簡單的「不」。 –

回答

1

這是完全合法的東西集合名稱包含的.字符,所以它的完全有可能組織你的數據,使你的第一個查詢是正確的。

雖然我很確信創建集合games.pong.leaderbords並不會創建gamesgames.pongpong,所以這可能無法解決您的問題。

這種類型的問題非常容易爲您自己回答 - 只需在MongoDB中鍵入您的查詢並查看會發生什麼。如果失敗了,那是不可能的。如果沒有,這是可能的。 MongoDB就是這樣。這不僅可以給你一個明確的答案,它還給你一個即時答案,而無需等待某人嘗試輸入查詢併發布結果。

+0

我很抱歉沒有足夠清晰地描述我的問題。我確實希望'遊戲'和'乒乓球'是自己擁有的集合,具有集合的所有特徵,但也有子集合。我找不到任何此類功能的文檔,但擔心我錯過了一些東西。 – gloo

+0

@gloo本身沒有子集合,不確定你定義的區別是說實話,但點符號確實允許組織類型子集合。關於你的應用程序中的子集合,有什麼特別的> – Sammaye

+0

我不認爲你是,不。您可以將'games','games.pong'和'games.pong.leaderboard'作爲單獨的集合,因爲這是3個不同的名稱。然而,除了你自己的代碼之外,三者之間不會有任何依賴關係。盡我所知,MongoDB無論如何不會執行任何操作。 –

0

我的意思要問的是我能做到這一點,在他們自己的權利的遊戲和乒乓球是正確的收藏,所以我仍然可以做類似

如果我理解你的權利則沒有。這兩個「子集合」將不會相互引用,除非實際創建了一個帶有數據的games集合(db.games.ping.xx不計算),那麼這將不起作用。