我如何在MongoDB中设计这个模式?

时间:2011-04-28 20:49:21

标签: mongodb database nosql

我们举一个聊天室的例子。

我应该创建2个集合:RoomMessages,并将房间详细信息(标题,说明)与消息(正文/日期/作者)分开存储? Messages集合将有一个名为“Room”的字段,该字段链接到Room的ObjectId。

我应该创建一个名为Room的集合。然后在Room里面,有一系列消息?

最佳做法是什么?你会做什么?

2 个答案:

答案 0 :(得分:0)

我倾向于你的第一选择。除了16MB可能太小的事实(我在我的日子里看到一些非常繁忙的聊天室),单独存储消息可以让你有更大的灵活性。房间甚至不需要知道与之关联的消息 - 只需创建一次,然后根据需要通过Room ID查询消息。

答案 1 :(得分:0)

这里已多次询问架构设计问题。请研究,因为解决方案总是一样的 - 您只需要考虑一下并将它们应用到您自己的用例中:

MongoDB Schema Design - Real-time Chat

Mongodb schema design

MongoDB Schema Design - Many small documents or fewer large documents?

在答案中用你自己问题的Y代替X真的不应该那么难。

此外:标准文档也适用(并且对您的问题非常明确):

http://www.mongodb.org/display/DOCS/Schema+Design