2014-02-23 132 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不计算),那么这将不起作用。